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的更多相关文章

  1. Java compiler level does not match解决方法

    从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description  Resource Path Location Type Java compiler level d ...

  2. 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 ...

  3. Android版本和API Level对应关系

    http://developer.android.com/guide/topics/manifest/uses-sdk-element.html Platform Version       API ...

  4. [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 ...

  5. [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 ...

  6. [LeetCode] Binary Tree Level Order Traversal 二叉树层序遍历

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  7. Android版本与api Level

    Platform Version API Level VERSION_CODE Notes Android 4.4 19 KITKAT Platform Highlights Android 4.3 ...

  8. 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 ...

  9. pythonchallenge 解谜 Level 8

    #-*- coding:utf-8 -*- #代码版本均为python 3.5.1 #Level 7 import bz2 un=b'BZh91AY&SYA\xaf\x82\r\x00\x00 ...

  10. pythonchallenge 解谜 Level 7

    #-*- coding:utf-8 -*- #代码版本均为python 3.5.1 #Level 7 from PIL import Image x_begin, x_end = 0, 609 y_b ...

随机推荐

  1. java 服务接口API限流 Rate Limit

    一.场景描述 很多做服务接口的人或多或少的遇到这样的场景,由于业务应用系统的负载能力有限,为了防止非预期的请求对系统压力过大而拖垮业务应用系统. 也就是面对大流量时,如何进行流量控制? 服务接口的流量 ...

  2. JavaScript 测试和捕捉

    try 语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块. JavaScript 语句 try 和 catch 是成对出现的.

  3. java SAXReader

    使用SAXReader需要导入dom4j-full.jar包. dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的JavaXML API,具 ...

  4. iOS-获取的NSDate date时间与实际相差8个小时解决方案

    本文转载至 http://blog.sina.com.cn/s/blog_51a995b70101iptl.html NSDate *date = [NSDate date]; NSTimeZone  ...

  5. 如何导入和导出应用数据通过电子邮件应用程序在你的IOS

     本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6657887 http://yueding920.blog.163.com/bl ...

  6. TLE之前,没有一个节点叫失败!!!

    我想我十八年来记忆最深刻的夜晚,大概便是在吉林大学燥热的宿舍里,穿着橘黄色的短袖,努力咽下大口大口的雪碧.那天晚上我仰躺在吉大热得几乎不能入眠的床板上,一动不动,看夏夜里打不尽的蚊子在惨白的天花板下飞 ...

  7. 【BZOJ4898】[Apio2017]商旅 分数规划+SPFA

    [BZOJ4898][Apio2017]商旅 Description 在广阔的澳大利亚内陆地区长途跋涉后,你孤身一人带着一个背包来到了科巴.你被这个城市发达而美丽的市场所深深吸引,决定定居于此,做一个 ...

  8. 【BZOJ4247】挂饰 背包

    [BZOJ4247]挂饰 Description JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他 ...

  9. 《从零开始学Swift》学习笔记(Day 37)——默认构造函数

    原创文章,欢迎转载.转载请注明:关东升的博客 结构体和类的实例在构造过程中会调用一种特殊的init方法,称为构造函数.构造函数没有返回值,可以重载.在多个构造函数重载的情况下,运行环境可以根据它的外部 ...

  10. Python 模块相对引用

    文件结构如下 python_directory/ ├── __init__.py └── app ├── __init__.py ├── sub1 │   ├── __init__.py │   └─ ...