level-8
CSS选择器常见的有几种?
- !important选择器——它是所有选择器里面权重最高的。
- *选择器——它是所有选择器里面权重最低的。可以为页面所有的标签添加统一样式,多用于页面整体样式调整,但它会增加浏览器的负荷,因为浏览器需要计算出页面所有的标签然后给这些标签添加样式,增加了页面的渲染时间;
- 标签选择器--可以为选择标签设置统一样式,比如设置
p{color:red;}
页面所有的段落颜色都是红色。 - id选择器——为页面单个标签设置属性,因为该属性只能在页面使用一次,所以只用来为重要的语义标签添加id属性。
- class选择器——为页面属性值为class的标签添加样式,因为可以多次反复的引用,所以使用频率很高。
p.user{font-size:18px;}
意思是为class属性值为‘user’的段落标签p设置样式为文本尺寸18px; - 属性选择器——通过为标签附加属性值来缩写选择范围,
input[type="text"]{color:blue;}
意思是为属性值type为text的input标签设置文本颜色为蓝色; - 组合选择器——通过父标签来选择后代标签元素为其添加样式
p span{color:purple;}
意思是选择p标签的所有span子元素并且为其设置颜色为purple。 - 伪类选择器——通过伪类设置选择范围,这种选择对于页面的变动性适应更好。
div p:first-of-type——选择div的所以子元素p中的第一个p;
div p:first-child——查找div的第一个子元素是否是p,如果是则匹配成功并为其添加样式,如果匹配不成功,则不起作用。
常见的这类属性:first-of-type;last-of-type;first-child;last-child;nth-of-type(n);nth-child(n);
选择器的优先级是怎样的?
选择器的优先级可以归纳为以下三条规则:
- 规则一、ID选择器的权重大于Class选择器,Class选择器的权重大于Element(元素)选择器;比如下面代码:
#div1 li{
color:blue;
}
.content .list li{
color:red;
} - 规则二、选择器的权重不区分加载先后顺序,如果是同级的权重,则后加载的样式覆盖先加载的;比如下面代码:
#div1{
color:red;
}
.content{
color:blue;
}虽然.content后加载,但是ID的权重高于Class。
- 规则三、继承的样式低于设置的样式;比如下面代码:
#div1{
color:red;
}
span{
color:blue;
}
<div id="div1">
<span>span1</span>
</div>虽然ID的权重高于Element的权重,但是ID是继承的样式,而Element(span)是设置的样式。
此外!important的优先级是最高的,*的优先级是最低的。
class和id的使用场景?
其实class和id的使用场景在规则中并没有给出规范,只是日常人们总结出来一些经验。
- id适合于页面板块切分时候的命名,因为页面板块的名称在页面中是独一无二的,是权重最高的。
- class适合于页面板块内部细节性的样式名命名,因为一个板块的样式可能是统一的,使用class可以很方便的重复使用。
使用class选择器时候为什么要划定适当的命名空间?
因为单纯的class选择器的范围太广泛,影响的标签太多,如果没有指定更具体的使用范围,引用时候就会出现很多意想不到的错误,比如本想修改div的字体大小,结果p因为样式需要引用的class也被修改了样式,如果是指定了这次修改是针对div的修改 div .style{font-size:16px;}
这样p的文本就不会被影响力。而且在团队协作时候,这种操作就越发的重要了。
/* 选择class属性值为header的标签 */
.header{
}
/* 选择class属性值为header的后代元素中class为logo的标签 */
.header .logo{
}
/* 选择同时具备class值为header和mobile的标签 */
.header.mobile{
}
/* 同时选择class值为header的后代p标签和class值为header的后代h3标签 */
.header p,.header h3{
}
/* 选择id值为header的后代元素中class值为nav的子元素li标签 */
#header .nav>li{
}
/* 选择id值为header的后代元素a的hover状态 */
#header a:hover{
}
列出你所知道的伪类选择器?
- :hover——鼠标悬停元素时候的样式;
- :active——鼠标点击元素时候的样式;
- :link——元素的常态样式;
- :actived——元素被点击过后的样式;
- :first-of-type——所选标签元素中的第一个使用样式;
- :nth-of-type(n)——所选标签元素中的第n个使用样式;
- :nth-child(n)——所选标签的父元素的第n个子元素使用样式;
- :last-of-type——所选标签元素中的最后一个使用样式;
- :first-child——所选标签元素的父元素的第一个子元素使用样式;
- :last-child——所选标签元素的父元素的最后一个子元素使用样式;
- focus——当元素获取焦点时候使用样式;
first-of-type和first-child的作用和区别?
俩者都可以选择标签,区别在于first-of-type表示所选标签的全部元素中的第一个,而first-child表示所选标签的父元素中所有子元素的第一个元素;
text-align:center的作用是什么,作用在什么元素上?能让是什么元素水平居中?
- text-align:center的作用是让行内元素水平居中;
- 作用在块级元素上;
- 能让块级元素的子元素中的行内元素水平居中;
如果遇到一个属性想知道兼容性,在哪里查看?
可以在网站caniuse查询。
level-8的更多相关文章
- Java compiler level does not match解决方法
从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description Resource Path Location Type Java compiler level d ...
- Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead的解决办法
今天在导入工程进Eclipse的时候竟然出错了,控制台输出的是: [2013-02-04 22:17:13 - takepicture] Android requires compiler compl ...
- Android版本和API Level对应关系
http://developer.android.com/guide/topics/manifest/uses-sdk-element.html Platform Version API ...
- [LeetCode] Binary Tree Level Order Traversal II 二叉树层序遍历之二
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- [LeetCode] Binary Tree Zigzag Level Order Traversal 二叉树的之字形层序遍历
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...
- [LeetCode] Binary Tree Level Order Traversal 二叉树层序遍历
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- Android版本与api Level
Platform Version API Level VERSION_CODE Notes Android 4.4 19 KITKAT Platform Highlights Android 4.3 ...
- Selenium通过WebDriver控制IE浏览器出错 Browser zoom level was set to 109%. It should be set to 100%
错误信息: WebDriverException: Message: Unexpected error launching Internet Explorer. Browser zoom level ...
- pythonchallenge 解谜 Level 8
#-*- coding:utf-8 -*- #代码版本均为python 3.5.1 #Level 7 import bz2 un=b'BZh91AY&SYA\xaf\x82\r\x00\x00 ...
- pythonchallenge 解谜 Level 7
#-*- coding:utf-8 -*- #代码版本均为python 3.5.1 #Level 7 from PIL import Image x_begin, x_end = 0, 609 y_b ...
随机推荐
- Mysql 变量讲解
set语句的学习: 使用select定义用户变量的实践将如下语句改成select的形式: set @VAR=(select sum(amount) from penalties);我的修改: sele ...
- 在 RHEL/CentOS 7 上配置NTP时间服务器
一.NTP简介 网络时间协议 - NTP - 是运行在传输层 123 号端口的 UDP 协议,它允许计算机通过网络同步准确时间.随着时间的流逝,计算机内部时间会出现漂移,这会导致时间不一致问题,尤其是 ...
- windows下mysql区分大小写敏感问题
默认情况下,表别名在Unix上区分大小写,但在Windows或macOS上不是这样.以下语句在Unix上不起作用,因为它引用别名as a和as A: mysql> SELECT col_name ...
- C++标准库之condition_variable
conditon_variable(条件变量)用于线程间同步 condition_variable有5个函数,函数名及对应的功能如下: wait阻塞自己,等待唤醒 wait_for阻塞自己,等待唤醒, ...
- linux oracle 配置监听器
参考:http://database.51cto.com/art/201010/231338.htm 服务端: 1.增加一个listener:终端运行: $ORACLE_HOME/bin/netca ...
- VC++ 得到的函数地址与实际函数地址不一致的原因。
我想试验一个计算汇编指令长度的代码是否正确,因而写了如下code进行验证,但结果非常奇怪 #include <stdio.h> #include <Windows.h> int ...
- HDU 2571 命运 (简单DP)
命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
- 如何通过PHP判断年份是否是闰年----两种方法
1.定义:闰年是对4取余为0,对100取余不等于0,对400取余等于0的年是闰年. 2.代码: 第一种方法:直接函数判断 $day = date('Y'); if ($day%4==0&&am ...
- 测试kernel.pid_max值
# sysctl kernel.pid_max kernel.pid_max = # sysctl - kernel.pid_max = #include <unistd.h> #incl ...
- IO-Polling的代码分析
在前一篇文章<IO-Polling实现分析与性能评測>中提到了IO-Polling与中断的原理差别,并通过两种模式下NVMe SSD的性能測试对两者进行了对照. 这篇文章将深入到IO-Po ...