参考文档,如何改变默认radio和select的样式

CSS 参考文档

2015/08/03 · CSS · CSS

本文由 伯乐在线 - 刘健超-J.c 翻译,艾凌风 校稿。未经许可,禁止转载!
英文出处:tympanus.net。欢迎加入翻译组。

我们已经在 Codrops 上发布了新章节:CSS 参考文档。我们现在就来谈谈它,看看究竟加了什么新特征让学习 CSS 变得更简单实际。

图片 1

Codrops 是最励志的网站之一。是的,我是有些偏袒的,但我肯定你也同意这一事实。

如果你正在寻求灵感,那你在这里就可以找到许多创意资源,它们能让你的脑袋里也会浮现一两个想法。我喜欢这个网站的理由之一是:Manoela 和 Pedro 提供的资源一定会给我们留下深刻印象。

如果你在寻找如何学习使用 CSS 属性的方法,你可以在这里找到很多源代码来学习。但如果你想学习更多关于属性的基础知识:属性定义,不同的取值,以及每个值的意义和作用,或是其它。而你能在这里找到一切你正在寻找的资源,这岂不是十分完美?

一年前,我们认为,如果 Codrops 有一些章节供读者来学习 CSS 属性,这会是一件激动人心的事。因此,将 Codrops 打造成为一个为用户提供灵感源泉和学习CSS 的优秀平台。这是 Manoela 向我提出的想法,而就在几天后,我开始着手实施了。

所以,在过去的一年里(不到一年),我们给 Codrops 新增了一个板块:CSS 参考文档。我们非常激动能够在最后与大家分享这一成果。

万事开头难,这篇参考文档仍在不断发展,我们都很努力地改进它,使其更加完善。倘若你有任何改善的建议,或发现错误,都可提交到这里 GitHub repo。

摘要: 推荐书小编编辑推荐:《图解CSS3》:核心技术与案例实战 资深Web前端专家历时两载的经验与心血之作,旨在根据最新CSS3规范撰写最权威的CSS3学习资料和备查手册理论知识系统且全面,以图解的方式讲解CSS3的各项功能 ...

       大家好,我是IT修真院北京分院第23期的学员郭婷婷,一枚正直纯洁善良的WEB前端程序员。

英文原文:Learning to Love the Boring Bits of CSS 
  未来的CSS太让人兴奋了:一方面,是全新的页面布局方式;另一方面,是酷炫的滤镜、颜色等视觉效果。这些CSS,受开发者追捧,被杂志和博客文章铺天盖地地介绍。 
  如果说这些特性是CSS华丽的一面,那我们来看看它朴实的一面:很不起眼的东西,如选择器、单位、函数(方法)。我经常说这是繁琐的东西,但我意思是它们能干漂亮的活,这就是我要分享的。 
  怎么说呢,让我们看看这些效果最好的朴实的CSS细节——这些细节远远没有那些酷炫的CSS效果那么引人注目。它们有些已经存在一段时间了,但值得我们更好地认识,而有些则刚刚面世。虽然不起眼,但是它们可以提高我们的工作效率——以谦虚的姿态。 
相对单位 
  聪明又有前瞻头脑的开发者们已经使用相对单位了——如em或者百分比——所以,开发者们了解这个问题:往往因为元素的继承性而需要使用计算器作为辅助工具来计算大小。例如,现在普遍的做法是给页面的字体设置全局尺寸,然后用相对单位来定义页面中其它的元素。CSS大概会这样写: 
html { font-size: 10px; } p { font-size: 1.4em; }

参考文档

Codrops 的 CSS 参考文档包含了一个条目列表入口:CSS 属性CSS 功能CSS 数据类型CSS @规则CSS 伪类/伪选择器/伪元素。每个条目都定义和描述了CSS 的属性、功能、数据类型、@规则或伪类/伪选择器/伪元素。

图片 2

除了以上 5 类条目,还有一类就是 CSS 概念。CSS 概念中的每个条目都包含具体 CSS 概念或完整的特性指导

CSS 概念条目充当了一组相关属性的全局条目。比如,Flexbox 和 Counters 是两个概念,所以它们都有自己的条目。每个条目都解释其概念含义和用途,还包含了其属性的定义与范例。

那么,一个 CSS 条目到底是怎样的呢?

图片 3

推荐书小编编辑推荐:《图解CSS3》:核心技术与案例实战

资深Web前端专家历时两载的经验与心血之作,旨在根据最新CSS3规范撰写最权威的CSS3学习资料和备查手册理论知识系统且全面,以图解的方式讲解CSS3的各项功能和特性,包含大量实战案例,直观易懂,实战性强

       今天给大家分享一下,如何改变默认radio和select的样式?

  这样写是没问题,直到有个子元素需要设置一个不同的字体大小,比如,在这样的标签当中: 
The cat sat on the mat.

CSS 条目结构

图片 4

每个条目拥有一个头部和智能搜索模块,而头部描述了该条目所属类别。下面某章节就介绍这个智能搜索特性。

每个 CSS 条目主要由这个几部分组成:描述官方语法属性值范例线上演示浏览器支持深入理解相关条目。每部分可能由多个小部分组成。

描述章节你可以学到 CSS 属性、功能、选择器等用法。该部分基本上是概念的定义和进一步说明。

在定义部分后就是一些综述,包括官方语法、初始值、该 CSS 特性能应用到哪些元素上以及属性值是否支持过渡(备注:CSS 3 的 transition-property)。有些类目不需要本节,所以,它是否存在取决于你正在阅读哪个类目。

属性值章节里会定义与描述每个取值。此外,如果一个 CSS 特性没有一组值(如:@ 规则),那么该章节就会被省略掉。

你会在范例章节里看到使用 CSS 特性的案例 – 包含主要的代码片段和运行结果的截图(如果有截图)。

线上演示章节里包含一个或多个线上演示的案例,这些案例中,有部分是来自范例章节的,有时会使用额外的案例。由于运行结果依赖于浏览器的支持,所以线上演示的案例可能会有用来展示运行结果的截图(如果浏览器不支持该 CSS 特性)。

需要注意的是,很多条目都包含一些线上演示,其中一些是嵌入在描述章节内。

请务必检查浏览器的支持程度,以确定您所使用的浏览器是否支持你正在阅读的特性。

由于有很多关于 CSS 特性和专题的优秀阅读资源,深入理解章节就包含了值得一读的优秀资源链接,其中有个规范文档链接,它包括了 CSS 将要引入的特性。

内容简介

《图解css3:核心技术与案例实战》是国内著名的web前端专家历时两载的心血之作,根据最新的css3撰写,融入了作者在css领域近10年的使用经验,旨在将本书打造成为css3领域最权威和实用的专业著作,供没有经验的读者系统学习,供有经验的读者参考备查。 《图解css3:核心技术与案例实战》理论知识系统全面,详细讲解了选择器、边框、背景、文本、颜色、盒模型、伸缩布局盒模型、多列布局、渐变、过渡、动画、媒体、响应web设计、web字体等主题下涵盖的所有css3新特性,所有这些都巧妙地融入到案例中,而不是纯粹枯燥的理论讲解;讲解方式直观易懂,以图解的方式巧妙地展示了这些新特性;实战性强,既为每个知识点精心设计了小案例,也有综合性的大案例,所有案例都非常详尽,有功能需求分析、设计思路和完整代码,还有最终的效果展示。

       分享人:郭婷婷

  如果你要设置span的字体大小为1.2em,你需要做什么?拿出计算器,算算1.2除以1.4是多少,结果如下: 
p span { font-size: 0.85714em; }

Codrops Playground

在我写条目期间,Manoela 和 Pedro 制作了 CSS 参考文档里最好的功能之一:playground

在该条目里看到的所有案例,都能被你编辑和体验,并且我们强烈建议你这样做,这样能让你更好地理解某个特性的运作和它不同取值的结果。需要注意的是,playground 仍处于Alpha 阶段,有很多特性还没有实现。尽管发送任何 BUG 报告、建议和评论到 playground ‘at’ codrops.com。

图片 5

作译者

廖伟华,资深Web前端工程师,W3cplus创始人,目前就职于Ctrip UED。中国Drupal社区核心成员之一。对HTML5、CSS3、XHTML和Sass等前端脚本语言有非常深入的认识和丰富的实践经验,尤其专注对CSS3的研究,是国内最早研究和使用CSS3技术的一批人。现在还关注Web产品策划、交互设计、SEO以及移动端开发。2012年4月刊的《程序员》杂志上发表文章“Twitter Bootstrap:前端框架利器”。

1.背景介绍

单选按钮 && 下拉列表

图片 6

图片 7

以上两种展示数据的方式分别由表单元素中的select标签和input标签实现,

其中input元素使用的是radio类型。

  这个问题不局限于em。如果用百分比来创建响应式的流式布局网站,而百分比是与容器相关的,所以,如果要定义一个元素为它的容器的40%,它的高是75%,宽则需要设置为53.33333%。 
  很明显,这很不方便。 
根相关的长度单位 
  为了修复字体大小定义的问题,现在可以使用单位rem(root em)。rem同样是相对单位,但是它所对应的是固定的基本值,这个固定的基本值也就是文档的根元素的字体大小(在HTML文件中,就是html元素)。假设和上个例子一样,同样设定10px的字体大小为根元素的大小,那么CSS这样写就OK了: 
p { font-size: 1.4rem; } p span { font-size: 1.2rem; }

智能搜索

每个条目里都有一个智能搜索模块。当然,你也可以在Codrops 首页找到它,紧靠左侧专题文章 。

图片 8

正如“智能搜索”这名字,它会匹配你要搜索字符串,然后从所有 CSS 条目中返回一列结果。所以,如果你搜索明确的字符串(或一个字母),智能搜索模块会从所有条目中,将含有该字符串的标题形成一个下拉框。当你搜索一个具体属性时这很有用,它可以获取一些相关的相关属性(例如:border、border-top、border-bottom、bottom-right等)。

前言

为什么要写这本书 CSS3是在CSS2.1基础上扩展而来,事实上,它还没有完全成熟。有些专家会告诉你,CSS3现在还用不上,甚至几年之后都不会有成熟的规范发布。 目前为止CSS3还没有一套成熟的规范,其中的模块也在不断更新,特别是浏览器对CSS3特性的支持也在不断变化,同时没有足够的时间去学习和研究W3C官方文档和规范,致使我们学习CSS3变得更为复杂。 为什么会选择这个时候编写这样一本图书呢?原因很简单。对于希望Web应用开发者而言,CSS3可以说是众望所归,这也是技术变更的硬性需求。在实际Web应用中新标准的采纳程度正在以令人目眩的速度不断地变更着,众多浏览器厂商也在不断加快对CSS3新特性的支持。在编写这本图书的过程中,我也被迫不断更新书中的浏览器支持表格。 面对自己正在使用的浏览器,大多数用户并不真正了解其具备的功能有多强大。当然,他们在浏览器自动更新后可能会发现一些细微的界面变化。但他们可能不知道,新版的浏览器对哪些CSS3特性有所支持。 本书的目标是帮助开发者更好地掌握CSS3的特性,并且将新技术运用到实际的开发当中,提高自己开发Web程序的水平。 本书面向的读者 有一定CSS3开发经验的前端工程师。 本书能帮助你系统掌握CSS3的各项知识,提升技术水平和业务能力。 从事CSS3开发的前端工程师。 由于CSS3涵盖的新特性非常多,在开发过程中将本书作为速查手册,提高开发效率。 前端开发爱好者。 如果还不是一名前端工程师,但是对前端开发非常感兴趣,本书也能让你对最新的CSS标准和规范有一个系统和全面的认识,为学习前端知识打下基础。 本书的特色 本书最大的特色就是将CSS3特性按模块功能分类,通过理论、图解、实战的方式向大家阐释CSS3每个特性功能。 内容全面、丰富、翔实。 由浅到深地讲解了CSS3新特性的语法、特性以及使用技巧。本书涵盖了CSS3众多功能模块,如CSS3选择器特性、边框模块、文本模块、颜色模块、UI界面模块、CSS3动画模块、CSS新型盒模型以及CSS媒体查询、响应式设计等。 图解方式,直观易懂。 图解的方式是本写的最大特色之一,在描述每一个CSS3特性过程都配了生动的实战效果,甚至每一步骤都配有相应的效果图。就算是你对文字理解或者代码理解有所误差,实战效果图能辅助你更好地理解CSS3每个特性。 案例丰富,实战性强。

2.知识剖析

一、form元素

        form元素定义 HTML 表单,HTML 表单是一个包含表单元素的区域。

        表单元素是允许用户在表单中输入内容,比如:文本输入、下拉列表、单选按钮、复选框等等。多数情况下被用到的表单标签是输入标签input。

二、radio

       先介绍一下input元素,input元素是最重要的表单元素。

       input元素在 form元素中使用,用来声明允许用户输入数据的 input 控件。

       输入类型是由类型属性(type)定义的,输入类型至少包含23种,大多数经常被用到的输入类型如下:

       text(文本输入)、password(密码输入)、submit(提交按钮)、button(按钮)、image(图像作为提交按钮)以及checkbox(复选框)和今天的重点radio(单选按钮)。

三、label

label 标签为 input 元素定义标注(标记)。label 元素不会向用户呈现任何特殊效果。

"for" 属性可把 label 绑定到另外一个元素。只需把 "for" 属性的值设置为相关元素的 id 属性的值。

四、select

select标签用来创建下拉列表。select标签中的 option 标签定义了列表中的可用选项。

  这两个CSS规则都是相对于根元素的字体大小,这样的代码更加优雅和简便,特别是在设置简单的数值如10px或者12px的时候。这样和使用px值很相似,不同点在于rem是可扩展的。 
  在整篇文章介绍的特性中,rem特性相对来说是兼容性比较好,高级浏览器都能支持,包括IE9在内,除了Opera Mobile。 
窗口相关的长度单位 
  觉得rem单位很酷吧,如果还有另外一组单位能解决百分比的问题,那就更酷了。它和rem的道理相似,不同点在于,它相对的不是文档的根元素,而是相对于设备窗口本身的大小。 
  这两个单位就是vh和vw,即是相对于窗口大小的高和宽。每个单位在前面加上数字,代表的是多少个百分比。 
div { height: 50vh; }

浏览器支持

无论何时可用,你会看到 CanIUse.com 的浏览器兼容性表格嵌入在浏览器支持章节,所以这个兼容性表格是一直保持最新的。

由于有些条目没有嵌入 CanIUse 的浏览器兼容性表格,我们会手工将这个浏览器支持信息写入。常见和经过测试的主要特性都得到浏览器支持,但有些特性可能会在未来被修改。所以,如果你发现体验过时的兼容性信息,请联系我们,让我们知道,我们会根据你的建议及时更新。

媒体评论

CSS3在前端开发中的重要性毋庸置疑,这些年来,新的CSS3规范在不断演进和完善,但是一直没有确定的规范。从技术标准的角度来讲,本书应该是目前版本最新的;从知识点的涵盖面来讲,本书也是同类书中最全面的。更难得的是,为了便于读者理解,作者用大量直观的图示替代了枯燥的文字,采用了图解的方式来讲解,相信这应该会很受读者欢迎。此外,本书还包含大量实战案例,理论与实践相结合。如果你要系统学习CSS3或者在开发中还不能熟练使用它,强烈推荐这本书给你。

3.常见问题

如何修改radio和select的默认样式

  在上面的例子,高度被设定为窗口高度的一半。1vh相当于一个百分比的窗口高度,所以50vh即是50%的窗口高度。 
  如果窗口大小变了,那么这个值也随之改变。这相对百分比来说,好处是不需要担心父容器,不管它的父容器如何,10vw的元素会一直是10%的窗口大小。 
  相应地,有vmin单位,相当于vh或者vw的最小值,最近还宣布有vmax单位会被加到规范文档里面(虽然在这篇文章发布的时候还没有)。 
  现在支持这个特性的有IE9 、Chrome和Safari 6。 
运算式的值 
  如果你在做响应式的流式布局网站,经常会遇到混合单位的问题——用百分比设置栅格,但是又用固定像素宽度设置margin。如: 
div { margin: 0 20px; width: 33%;}

向前看

有些被遗漏属性,它们只得到小部分浏览器支持,甚至还没得到当今浏览器支持。对于它们的说明还不是很稳定,经常会变动。我们的愿望是把它们添加到条目里,因为它们在将来有希望得到浏览器更好的支持,并且它们的说明变得稳定起来。

我们都知道,在我们这个领域,每天都会有新发现。所以,我们希望 CSS 参考文档能一直得到成长和扩展,能随着时间不断添加额外的属性和特性。即时当前条目更新缓慢。

我们设定了一个里程碑式的目标,首先向你提供一个优秀的参考文档,并致力于不断改善它。

书摘

第1章 揭开CSS3的面纱 如果关注前端方面的技术,那么对CSS一定不会陌生,你肯定听说过CSS3。在使用CSS3之前,应该对这个新一代样式表语言的来龙去脉有个基本了解。 在本章中,你将知道CSS3与CSS2.1的区别,以及当前市面上主流浏览器、移动端浏览器对CSS3支持的情况。对于尚不完全支持CSS3的浏览器,将会为大家引入一个渐进增强的概念,用一些CSS方法来模拟CSS3的实现方法。最后给大家简单介绍一些CSS3引入的新特性及其未来的前景。 1.1什么是CSS3 CSS3并不是一门新的语言。如果接触过CSS就知道,CSS是创建网页的另一个独立但并非不重要的一部分。CSS是种层叠样式表,是一种样式语言,用来告诉浏览器如何渲染你的Web页面。 CSS3是CSS规范的最新版本,在CSS2.1的基础上增加了很多强大的新功能,以帮助开发人员解决一些问题,并且不再需要非语义标签、复杂的JavaScript脚本以及图片,例如圆角功能、多背景、透明度、阴影等功能等。CSS2.1是单一的规范,而CSS3被划分成几个模块组,每个模块组都有自己的规范。这样的好处是整个CSS3的规范发布不会因为部分难缠的部分而影响其他模块的推进。 现在先来看看CSS3激动人心的新特性。 1.1.1CSS3的新特性 CSS3规范并不是独立的,它重复了CSS的部分内容,但在其基础上进行了很多的增补与修改。CSS3与之前的几个版本相比,其变化是革命性的,虽然它的部分属性还不能够被浏览器完美的支持,但却让我们看到网页样式发展的前景,让我们更具有方向感、使命感。 CSS3新特性非常多,这里挑选一些被浏览器支持较为完美、更具实用性的新特性。 1.强大的CSS3选择器 使用过jQuery的人都知道,jQuery的选择器功能强大,使用方便,CSS3选择器和jQuery选择器非常类似。允许设计师通过选择器直接指定需要的HTML元素,而不需要在HTML中添加不必要的类名、ID等。使用CSS3选择器,能在Web的制作中更完美地做到结构与表现分离,设计师能轻松地设计出简洁、轻量级的Web页面,并且能更好地维护和修改样式。 2.抛弃图片的视觉效果 Web中最常见的效果包括圆角、阴影、渐变背景、半透明、图片边框等。而这样的视觉效果在CSS中都是依赖于设计师制作图片或者JavaScript脚本来实现的。CSS3的一些新特性可以用来创建一些特殊的视觉效果,后面的章节将为大家展现这些新特性是如何实现这些视觉效果。 3.背景的变革 如果说CSS中的背景给你带来太多的限制,那么CSS3将带来革命性的变化。CSS3不再局限于背景色、背景图像的运用,新特性中添加了多个新的属性值,例如background-origin、background-clip、background-size,此外,还可以在一个元素上设置多个背景图片。这样,如果要设计比较复杂的Web页面效果,就不再需要使用一些多余标签来辅助实现了。举个例子,要实现CSS中的滑动门效果,在CSS中基本上要添加2~3个额外的标签来辅助实现,那么CSS3中的这些新特性能够在一个标签中完成同等的效果。 4.盒模型变化 盒模型在CSS中是重中之重,CSS中的盒模型只能实现一些基本的功能,对于一些特殊的功能需要基于JavaScript来实现。而在CSS3中这一点得到了很大的改善,设计师可以直接通过CSS3来实现。例如,CSS3中的弹性盒子,这个属性将给大家引入一种全新的布局概念,能轻而易举实现各种布局,特别是在移动端的布局,它的功能更是强大。大家将在第7章、第8章见识它的神功。 5.阴影效果

4 解决方案

4.1 修改radio默认样式

需要用到的工具如下:

label标签;

:checked 选择器,匹配每个已被选中的 input 元素(只用于单选按钮和复选框)。

兄弟选择器:

1、 选择器(相邻兄弟选择器),可选择紧接在另一元素后的元素,且二者有相同父元素。

2、~ 选择器,作用是查找某一个指定元素的后面的所有兄弟结点。

4.2 修改select默认样式

appearance 属性,可以让元素看上去像标准的用户界面元素。

图片 9

所有主流浏览器都不支持 appearance 属性。

Firefox 支持替代的 -moz-appearance 属性。

Safari 和 Chrome 支持替代的 -webkit-appearance 属性。

  如果布局只用到padding和border,你可以使用box-sizing来解决,但是对于margin就无能为力了。更好、更灵活的方法是使用calc()函数,设置不同单位之间的数学方程式,如: 
div { margin: 0 20px; width: calc(33% - 40px);}

你的反馈

当然,你的评价和反馈对我们是非常重要的。毕竟,这个参考文档是为你们而做的,所以我们想确保你能在这里找到任何你需要的东西。

我们会在专门收集问题和建议的 Github 库上收集你的反馈与建议。

找到 BUG?找到一处需要更新的信息?有错别字?有改善参考文档的建议?希望我们在概念条目添加某个 CSS 概念?那就在 Github 尽情提交问题吧。我自己也会常常寻找问题和回答你的问题,并根据需要尽可能多和尽快进行编辑和更新。如果你想及时得到关于条目或请求的回答,可以在 Twitter 发信息给我。

目录

《图解css3:核心技术与案例实战》 前 言 第1章 揭开css3的面纱 1 1.1 什么是css3 1 1.1.1 css3的新特性 2 1.1.2 css3的发展状况 4 1.1.3 现在能使用css3吗 5 1.1.4 使用css3有什么好处 5 1.2 浏览器对css3的支持状况 6 1.2.1 经典回顾:图说浏览器大战 7 1.2.2 浏览器的市场份额 8 1.2.3 主流浏览器对css3支持状况 9 1.3 渐进增强 11 1.3.1 渐进增强与优雅降级 11 1.3.2 渐进增强的优点 12 1.4 css3的现状及未来 13 1.4.1 谁在使用css3 13 1.4.2 css3的未来 14 1.5 本章小结 14 第2章 css3选择器 15 2.1 认识css选择器 15 2.1.1 css3选择器的优势 15 2.1.2 css3选择器分类 16 2.2 基本选择器 16 2.2.1 基本选择器语法 16 2.2.2 浏览器兼容性 17 2.2.3 实战体验:使用基本选择器 17 2.2.4 通配选择器 18 2.2.5 元素选择器 18 2.2.6 id选择器 18 2.2.7 类选择器 19 2.2.8 群组选择器 20 2.3 层次选择器 21 2.3.1 层次选择器语法 21 2.3.2 浏览器兼容性 21 2.3.3 实战体验:使用层次选择器选择元素 21 2.3.4 后代选择器 23 2.3.5 子选择器 23 2.3.6 相邻兄弟选择器 24 2.3.7 通用兄弟选择器 25 2.4 动态伪类选择器 25 2.4.1 动态伪类选择器语法 26 2.4.2 浏览器兼容性 26 2.4.3 实战体验:美化按钮 27 2.5 目标伪类选择器 29 2.5.1 目标伪类选择器语法 29 2.5.2 浏览器兼容性 30 2.5.3 实战体验:制作手风琴效果 30 2.6 语言伪类选择器 33 2.6.1 语言伪类选择器语法 33 2.6.2 浏览器兼容性 34 2.6.3 实战体验:定制不同语言版本引文风格 34 2.7 ui元素状态伪类选择器 36 2.7.1 ui元素状态伪类选择器语法 36 2.7.2 浏览器兼容性 36 2.7.3 实战体验:bootstrap的表单元素ui状态 37 2.8 结构伪类选择器 41 2.8.1 重温html的dom树 41 2.8.2 结构伪类选择器语法 42 2.8.3 浏览器兼容性 43 2.8.4 结构伪类选择器中的n是什么 44 2.8.5 结构伪类选择器的使用方法详解 47 2.8.6 实战体验:css3美化表格 61 2.9 否定伪类选择器 66 2.9.1 否定伪类选择器语法 66 2.9.2 浏览器兼容性 67 2.9.3 实战体验:改变图片效果 67 2.10 伪元素 69 2.10.1 伪元素::first-letter 69 2.10.2 伪元素::first-line 70 2.10.3 伪元素::before和::after 70 2.10.4 伪元素::selection 72 2.11 属性选择器 73 2.11.1 属性选择器语法 73 2.11.2 浏览器兼容性 74 2.11.3 属性选择器的使用方法详解 75 2.11.4 实战体验:创建个性化链接样式 81 2.12 本章小结 84 第3章 css3边框 85 3.1 css3边框简介 85 3.1.1 边框的基本属性 85 3.1.2 边框的类型 86 3.1.3 谁在使用css3边框 88 3.2 css3边框颜色属性 88 3.2.1 border-color属性的语法及参数 88 3.2.2 浏览器兼容性 90 3.2.3 border-color属性的优势 90 3.2.4 实战体验:立体渐变边框效果 91 3.3 css3图片边框属性 91 3.3.1 border-image属性的语法及参数 92 3.3.2 border-image属性使用方法 92 3.3.3 浏览器兼容性 99 3.3.4 border-image属性的优势 100 3.3.5 实战体验:按钮圆角阴影效果 100 3.4 css3圆角边框属性 105 3.4.1 border-radius属性的语法及参数 105 3.4.2 border-radius属性使用方法 107 3.4.3 浏览器兼容性 114 3.4.4 border-radius属性的优势 115 3.4.5 实战体验:制作特殊图形 115 3.5 css3盒子阴影属性 118 3.5.1 box-shadow属性的语法及参数 118 3.5.2 box-shadow属性使用方法 119 3.5.3 浏览器兼容性 129 3.5.4 box-shadow属性的优势 130 3.5.5 实战体验:制作3d搜索表单 130 3.6 本章小结 133 第4章 css3背景 134 4.1 css3背景属性简介 134 4.1.1 背景的基本属性 134 4.1.2 与背景相关的新增属性 137 4.2 css3背景原点属性 137 4.2.1 background-origin属性的语法及参数 137 4.2.2 background-origin属性使用方法 138 4.2.3 浏览器兼容性 140 4.3 css3背景裁切属性 141 4.3.1 background-clip属性的语法及参数 141 4.3.2 background-clip属性使用方法 143 4.3.3 浏览器兼容性 147 4.4 css3背景尺寸属性 148 4.4.1 background-size属性的语法及参数 148 4.4.2 background-size属性使用方法 149 4.4.3 浏览器兼容性 152 4.4.4 实战体验:制作全屏背景 153 4.5 内联元素背景图像平铺循环方式 154 4.6 css3多背景属性 154 4.6.1 css3多背景语法及参数 155 4.6.2 css3多背景的优势 156 4.6.3 浏览器兼容性 156 4.6.4 实战体验:制作花边框 157 4.7 本章小结 159 第5章 css3文本 160 5.1 css3文本简介 160 5.2 css3文本阴影属性 161 5.2.1 text-shadow属性的语法及参数 162 5.2.2 浏览器兼容性 162 5.2.3 实战体验:制作立体文本 163 5.3 css3溢出文本属性 166 5.3.1 text-overflow属性的语法及参数 166 5.3.2 浏览器兼容性 166 5.3.3 text-overflow属性使用方法 167 5.3.4 实战体验:制作固定区域的博客列表 168 5.4 css3文本换行 170 5.4.1 word-wrap属性 170 5.4.2 word-break属性 173 5.4.3 white-space属性 177 5.4.4 文本换行技巧 179 5.4.5 文本换行技术对比 180 5.5 本章小结 180 ☆第6章 css3颜色特性 181 6.1 网页中的色彩特性 181 6.1.1 网页色彩的表现原理 181 6.1.2 web页面的安全色 182 6.1.3 色彩模式 183 6.2 css3透明属性 184 6.2.1 opacity属性的语法及参数 184 6.2.2 opacity浏览器兼容性 185 6.2.3 实战体验:制作透明过渡色块 185 6.3 css3颜色模式 187 6.3.1 rgba颜色模式 187 6.3.2 hsl颜色模式 190 6.3.3 hsla颜色模式 194 6.3.4 rgba和hsla颜色模式之间的选择 196 6.3.5 rgba/hsla的ie兼容方案 196 6.3.6 rgba/hsla滤镜格式 197 6.4 本章小结 197 第7章 css3盒模型 198 7.1 css盒模型简介 198 7.1.1 什么是盒模型 198 7.1.2 重置盒模型解析模式 199 7.2 css3盒模型属性 200 7.2.1 box-sizing属性的语法及参数 200 7.2.2 浏览器兼容性 201 7.2.3 实战体验:box-sizing拯救了布局 202 7.3 css3内容溢出属性 209 7.3.1 overflow-x和overflow-y属性的语法及参数 209 7.3.2 浏览器兼容性 209 7.4 css3自由缩放属性 210 7.4.1 resize属性的语法及参数 210 7.4.2 浏览器兼容性 210 7.4.3 实战体验:修改文本域随意调整大小的功能 210 7.5 css3外轮廓属性 211 7.5.1 outline属性的语法及参数 211 7.5.2 浏览器兼容性 212 7.5.3 outline和border的对比 212 7.5.4 实战体验:模仿边框效果 213 7.6 本章小结 213 第8章 css3伸缩布局盒模型 214 8.1 flexbox模型基础知识 214 8.1.1 css中的布局模式 214 8.1.2 flexbox模型的功能 215 8.1.3 flexbox模型中的术语 215 8.1.4 flexbox模型规范状态 218 8.1.5 flexbox模型浏览器兼容性 218 8.1.6 flexbox模型语法变更 219 8.2 旧版本flexbox模型的基本使用 221 8.2.1 伸缩容器设置display 222 8.2.2 伸缩流方向box-orient 224 8.2.3 布局顺序box-direction 226 8.2.4 伸缩换行box-lines 229 8.2.5 主轴对齐box-pack 232 8.2.6 侧轴对齐box-align 237 8.2.7 伸缩性box-flex 242 8.2.8 显示顺序box-ordinal-group 246 8.2.9 实战体验:box制作自适应的三列等高布局 249 8.3 混合版本flexbox模型的基本使用 253 8.3.1 伸缩容器设置display 253 8.3.2 伸缩流方向flex-direction 254 8.3.3 伸缩换行flex-wrap 257 8.3.4 伸缩流方向与换行flex-flow 259 8.3.5 主轴对齐flex-pack 259 8.3.6 侧轴对齐flex-align 262 8.3.7 堆栈伸缩行flex-line-pack 266 8.3.8 伸缩性flex 271 8.3.9 显示顺序flex-order 273 8.4 新版本flexbox模型的基本使用 275 8.4.1 伸缩容器display 275 8.4.2 伸缩流方向flex-direction 276 8.4.3 伸缩换行flex-wrap 276 8.4.4 伸缩流方向与换行flex-flow 277 8.4.5 主轴对齐justify-content 277 8.4.6 侧轴对齐align-items和align-self 278 8.4.7 堆栈伸缩行align-content 280 8.4.8 伸缩性flex 281 8.4.9 显示顺序order 285 8.5 综合案例:跨浏览器的三列布局 288 8.6 本章小结 292 第9章 css3多列布局 293 9.1 css3多列布局简介 293 9.1.1 浏览器兼容性 293 9.1.2 css3多列布局的属性 294 9.2 css3多列布局基本属性 295 9.2.1 columns属性的语法及参数 295 9.2.2 浏览器兼容性 295 9.2.3 实战体验:web页面的多列布局 296 9.3 css3多列布局列宽属性 297 9.3.1 column-width属性的语法及参数 297 9.3.2 实战体验:浏览器根据窗口宽度变化调整列数 298 9.4 css3多列布局列数属性 302 9.4.1 column-count属性的语法及参数 302 9.4.2 实战体验:显示固定列数 302 9.5 css3多列布局列间距属性 303 9.5.1 column-gap属性的语法及参数 304 9.5.2 实战体验:设置列间距 304 9.6 css3多列布局列边框样式属性 306 9.6.1 column-rule属性的语法及参数 306 9.6.2 实战体验:设置列边框 307 9.7 css3多列布局跨列属性 309 9.7.1 column-span属性的语法及参数 310 9.7.2 实战体验:文章标题跨列显示 310 9.8 css3多列布局列高度属性 311 9.9 本章小结 311 ☆第10章 css3渐变 312 10.1 css3渐变简介 312 10.1.1 什么是色标 312 10.1.2 浏览器兼容性 313 10.2 css3线性渐变 314 10.2.1 css3线性渐变语法与参数 315 10.2.2 css3 线性渐变的基本用法 317 10.2.3 自定义css3线性渐变 324 10.2.4 实战体验:css3制作渐变按钮 325 10.3 css3径向渐变 333 10.3.1 css3径向渐变语法 333 10.3.2 css3径向渐变的属性参数 334 10.3.3 css3径向渐变的基本用法 335 10.3.4 实战体验:css3径向渐变制作圆形图标按钮 350 10.4 css3重复渐变 353 10.4.1 css3重复线性渐变 353 10.4.2 css3重复径向渐变 354 10.4.3 实战体验:制作记事本纸张效果 354 10.5 综合案例:css3渐变制作纹理背景 355 10.6 本章小结 357 第11章 css3变形 358 11.1 css3变形简介 358 11.1.1 css变形属性及函数 358 11.1.2 浏览器兼容性 359 11.2 css变形属性详解 360 11.2.1 transform属性 360 11.2.2 transform-origin属性 363 11.2.3 transform-style属性 370 11.2.4 perspective属性 372 11.2.5 perspective-origin属性 377 11.2.6 backface-visibility属性 380 11.3 css3 2d变形 385 11.3.1 2d位移 385 11.3.2 2d缩放 390 11.3.3 2d旋转 394 11.3.4 2d倾斜 396 11.3.5 2d矩阵 398 11.4 css3 3d变形 403 11.4.1 3d位移 404 11.4.2 3d缩放 406 11.4.3 3d旋转 407 11.4.4 3d矩阵 409 11.5 多重变形 410 11.5.1 2d多重变形制作立方体 410 11.5.2 3d多重变形制作立方体 412 11.6 综合案例:3d变形制作产品信息展示 413 11.7 本章小结 416 ☆第12章 css3过渡 417 12.1 css3过渡简介 417 12.1.1 如何创建简单的过渡 417 12.1.2 浏览器兼容性 418 12.1.3 css3过渡属性 418 12.2 css3过渡子属性详解 420 12.2.1 指定过渡属性transition-property 421 12.2.2 指定过渡所需时间transition-duration 423 12.2.3 指定过渡函数transition-timing-function 425 12.2.4 指定过渡延迟时间transition-delay 431 12.2.5 多个css3过渡效果 433 12.3 css3触发过渡 434 12.3.1 伪元素触发 434 12.3.2 媒体查询触发 436 12.3.3 javascript触发 436 12.4 css3过渡技巧 437 12.4.1 一个完整的过渡 437 12.4.2 可过渡的属性 438 12.4.3 优先的过渡属性 439 12.4.4 过渡的开始和结束为auto 439 12.4.5 隐式过渡 439 12.4.6 开关状态的不同过渡方式 440 12.4.7 几乎无限延迟的过渡 441 12.4.8 通过硬件加速过渡更加流畅 441 12.4.9 过渡和伪元素 442 12.5 综合案例:纯css3制作css dock导航效果 443 12.6 本章小结 449 第13章 css3动画 450 13.1 css3动画简介 450 13.1.1 浏览器兼容性 450 13.1.2 css3动画属性 451 13.2 关键帧 452 13.2.1 @keyframes的作用 452 13.2.2 @keyframes的语法 453 13.2.3 浏览器兼容性 454 13.3 css中为元素应用动画 454 13.3.1 使用@keyframes声明动画 454 13.3.2 调用@keyframes声明的动画 456 13.4 css3动画子属性详解 457 13.4.1 调用动画animation-name 457 13.4.2 设置动画播放时间animation-duration 458 13.4.3 设置动画播放方式animation-timing-function 458 13.4.4 设置动画开始播放的时间animation-delay 458 13.4.5 设置动画播放次数animation-iteration-count 458 13.4.6 设置动画播放方向animation-direction 458 13.4.7 设置动画的播放状态animation-play-state 459 13.4.8 设置动画时间外属性animation-fill-mode 459 13.5 综合案例:全屏slidershow效果 459 13.6 本章小结 464 第14章 媒体特性与responsive设计 465 14.1 媒体类型 465 14.1.1 media type设备类型 465 14.1.2 媒体类型引用方法 466 14.2 媒体特性 467 14.2.1 media query和css属性集合 467 14.2.2 常用media query设备特性 468 14.2.3 浏览器兼容性 468 14.2.4 media query使用方法 468 14.3 responsive布局概念 470 14.3.1 responsive设计特点 471 14.3.2 responsive中的术语 471 14.3.3 responsive布局技巧 473 14.3.4 meta标签 474 14.4 本章小结 475 第15章 嵌入web字体 476 15.1 @font-face模块介绍 476 15.1.1 浏览器兼容性 476 15.1.2 @font-face语法 477 15.1.3 使用字体图标的优势 477 15.2 实现@font-face 478 15.2.1 使用@font-face自定义字体 478 15.2.2 声明字体来源 479 15.2.3 创建各种字体 481 15.2.4 调用字体 483 15.3 综合案例:将图标转换成web字体 483 15.3.1 创建一个图标字体 483 15.3.2 准备插图 484 15.3.3 导入到icomoon 485 15.3.4 从icomoon中导出字体 485 15.3.5 下载字体文件 485 15.3.6 调用字体 486 15.4 本章小结 486

5.编码实战

  它不仅可以用来计算宽,还可以用来计算长度——如果有必要,还可以在calc()里面再加calc()。 
  这个特性IE9 和Firefox都支持,Firefox需要加上 -moz- 前缀(在版本16或17可能不用加前缀),Chrome和Safari也支持,但需要加上 -webkit- 前缀。然而,移动Webkit还不支持。 
加载字体库的部分字体 
  优越的性能往往很重要,尤其是市场上各种各样的移动设备——导致连接速度的差异和不确定性——更加体现了这个重要性。其中一个加快页面加载速度的方法,就是减少外部文件个数,@font-face的一个新属性unicode-range就是为此而生。 
  这个属性就是unicode-range(编码范围),代表的是编码字体的参数范围。在加载外部文件的时候,只有那些被使用的字体才会被加载,而不是整套字体库。下面的代码演示了如何从foo.ttf字体库中仅加载三个字体: 
@font-face {font-family: foo;src: url(‘foo.ttf’);unicode-range: U 31-33;}

留在最后的一些话

我们把全部心血都放到了这个参考文档,希望它能为你提供非常有用的学习资源。我希望你能从参考文档里学到尽可能多地东西,因为我也在写的过程中学会了很多。

同时我们也希望您喜欢经过小小改造的 Codrops !

非常感谢您的阅读。另外,别忘了到 参考文档 看看哦!

打赏支持我翻译更多好文章,谢谢!

打赏译者

6.扩展思考

伪类和伪元素的区别

图片 10

图片 11

  1. 伪类与伪元素

CSS introduces the concepts of pseudo-elements and pseudo-classes  to permit formatting based on information that lies outside the document tree.

直译过来就是:css引入伪类和伪元素概念是为了格式化文档树以外的信息。

也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。

下面分别对伪类和伪元素进行解释:

伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,当用户悬停在指定的元素时,我们可以通过:hover来描述这个元素的状态。

虽然它和普通的css类相似,可以为已有的元素添加样式,但是它只有处于dom树无法描述的状态下才能为元素添加样式,所以将其称为伪类。

伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过:before来在一个元素前增加一些文本,并为这些文本添加样式。

虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。

  1. 伪类与伪元素的区别

图片 12

如果不用添加类的方法,可以通过给设置第一个li的:first-child伪类来为其添加样式。这个时候,被修饰的li元素依然处于文档树中。

图片 13

如果不创建一个span元素,我们可以通过设置p的:first-letter伪元素来为其添加样式。

这个时候,看起来好像是创建了一个虚拟的元素并添加了样式,但实际上文档树中并不存在这个元素。

从上述例子中可以看出,伪类的操作对象是文档树中已有的元素,而伪元素则创建了一个文档数外的元素。因此,伪类与伪元素的区别在于:有没有创建一个文档树之外的元素。

  这点对于使用字体图标的页面尤其有用。我测试过,使用unicode-range,加载字体文件的时间平均减少了0.85秒,也不是小数目了。当然,你可能不会这么想。 
  这个属性,目前可以在IE9 、Webkit浏览器(如Chrome和Safari)中运行。 
新的伪类 
  单位和值都应该好好利用,但是,让我更兴奋的是选择器和伪类。完善的选择器模式,即使只有少数浏览器支持,都让我兴奋不已。引用乔布斯的话:你要把栅栏的里面修得和外面一样漂亮,即使别人看不到里面——因为你自己知道。 
  我第一次使用:nth-of-type()的时候,简直是一次突破,就像我冲出了思想的桎梏。好吧,我有些夸张了。但有些新的CSS伪类,确实值得狂热一番。 
否定伪类 
  你大概不知道 :not() 伪类的好,除非你亲自实践一番。带有参数的 :not() 其实就是普通的选择器——不是复合选择器。一组元素加上选择器 :not(),表示满足这个参数的元素会被排除出去。听起来有些复杂吧?但是实际上非常简单。 
  假设:要对项目列表的奇数行进行选择,但是最后一行除外。如果是以前,需要这样写: 
li { color: #00F; } li:nth-child(odd) { color: #F00; } li:last-child { color: #00F; }

打赏支持我翻译更多好文章,谢谢!

任选一种支付方式

图片 14 图片 15

2 赞 2 收藏 评论

7.参考文献

参考1:W3school

参考2:总结伪类与伪元素

  现在,通过设定:last-child作为否定伪类的参数,就可以把最后一个元素排除,这样少了一行代码,从而更加的简洁和易维护。 
li { color: #00F; } li:nth-child(odd):not(:last-child) { color: #F00; }

关于作者:刘健超-J.c

图片 16

前端,在路上... 个人主页 · 我的文章 · 19 ·     

图片 17

8 更多讨论

(1)伪元素后面单冒号和双冒号的区别?

        CSS3规范中的要求使用双冒号(::)表示伪元素,以此来区分伪元素和伪类,比如::before和::after等伪元素使用双冒号(::),:hover和:active等伪类使用单冒号(:)。除了一些低于IE8版本的浏览器外,大部分浏览器都支持伪元素的双冒号(::)表示方法。然而,除了少部分伪元素,如::backdrop必须使用双冒号,大部分伪元素都支持单冒号和双冒号的写法,比如::after,写成:after也可以正确运行。虽然CSS3标准要求伪元素使用双冒号的写法,但也依然支持单冒号的写法。

(2)伪类的使用方法

伪类的语法:

selector:pseudo-class {property:value;}

CSS类也可以使用伪类:

selector.class:pseudo-class {property:value;}

(3)伪类的注意事项

伪类就像真正的类一样,可以叠加使用,没有数量上限,只要不是互斥的,比如这样:

em:first-child:hover {color: red;}

这是完全可以的。但注意,这里是“与”的关系。也就是说既要满足“first-child”第一个子元素,又要满足“hover”光标悬浮。

  否定伪类看起来并没有什么惊人之处,你可以不用它,但是它还是挺实用的。我曾经把它用在基于Webkit的项目当中,优势还是挺明显的。说实话,它是我最喜欢的伪类之一。 
  是的,我有最喜欢的伪类。 
  在本文提到的特性当中,否定伪类是兼容性最好的,它被IE9 和高级浏览器支持(不需要加浏览器产商前缀)。如果你熟悉jQuery,你可能习惯用它——版本1.0开始就有了,以及相似的not()方法。 
“适用于”伪类 
  :matches() 伪类可以用普通的选择器、复合选择器、逗号隔开的列表或任何的选择器组合作为参数。太棒了!但是,它能做什么? 
  :matches() 伪类最强大的地方就是聚合多行选择器。例如,要选择父容器里面其中几个不同子容器里面的p元素,在这之前,代码或许会写成这样: 
.home header p,.home footer p,.home aside p {color: #F00;}

图片 18

图片 19

图片 20

图片 21

鸣谢

感谢大家观看

BY :郭婷婷

PPT链接:

视频链接:


技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !

猛戳这里

  有了:matches()伪类,就可以把共同点提取出来,缩减代码量。该例子里面,选择器的共同点是以home为起点、以p为终点,所以可以用:matches()把中间的所有元素集合起来。是不是有些困惑?看看代码就明白了: 
.home :matches(header,footer,aside) p { color: #F00; }

  这其实是CSS4的一部分(确切地说,是CSS选择器第四等级),这份规范文档还提到将会有类似的语法(以逗号隔开的复合选择器)应用于:not()伪类。兴奋ing! 
  目前,:matches()可以在Chrome和Safari浏览器中运行,但是要加上前缀-webkit-,Firefox也支持,但是要按照旧的写法:any(),同时要加上-moz-前缀。 
你爱上这些朴实的CSS细节了吗? 
  这篇文章讲到的特性,最赞的一点是它们解决了现实的问题,从琐碎而繁复的选择器到建立响应式网站的新挑战。实际上,我期待每一个特性被使用到最普通的项目当中。(web前端学习交流群:328058344 禁止闲聊,非喜勿进!)

  新特性如滤镜可能很直观很华丽,但是我更愿意发现隐藏在深处的实用小技巧。 
  在积极探索的过程中,每一个特性可以让你的职业生涯更顺利——想到这里,就不会觉得繁琐了

本文由星彩网app下载发布于前端技术,转载请注明出处:参考文档,如何改变默认radio和select的样式

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。