CSS 一些基础知识(优先级、行内元素的一些属性、font-size单位) 怎样不加载图片

转载自:http://www.cnblogs.com/ctriphire/p/4159935.htmlcss

CSS大小写不敏感

选择器优先级以下所示:

  1. 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。
  2. 做为style属性写在元素内的样式
  3. id选择器
  4. 类选择器
  5. 标签选择器
  6. 通配符选择器
  7. 浏览器自定义或继承

同一级别html

同一级别中后写的会覆盖先写的样式web

规则是多个级别的组合,把选择器中规则对应作加法,比较权值,若是权值相同那就后面的覆盖前面的了,各个选择器的权值为:浏览器

  • 内联样式表的权值为 1000
  • ID 选择器的权值为 100
  • Class 类选择器的权值为 10
  • HTML 标签选择器的权值为 1

行内(inline)元素的一些属性

并非全部的属性对行内元素都可以生效网络

  1. 行内元素不会应用width属性,其长度是由内容撑开的
  2. 行内元素不会应用height属性,其高度也是由内容撑开的,可是高度能够经过line-height调节
  3. 行内元素的padding属性只用padding-left和padding-right生效,padding-top和padding-bottom会改变元素范围,但不会对其它元素形成影响
  4. 行内元素的margin属性只有margin-left和margin-right有效,margin-top和margin-bottom无效
  5. 行内元素的overflow属性无效,这个不用多说了
  6. 行内元素的vertical-align属性无效(height属性无效)

一些互斥的元素

  1. 对于absolute和fixed定位的(固定大小,设置了width和height属性)元素,若是设置了top和left属性,那么设置bottom和right值就没有做用了,应该是top和left优先级高,不然同时写了浏览器怎么知道按照谁定位
  2. 对于absolute和fixed定位的元素,若是设置了top、left、bottom、right的值后margin属性也就不起做用了
  3. 对于absolute和fixed定位的元素,若是设置了top、left、bottom、right的值后float属性一样会失效
  4. 块元素若是设置了float属性或者是absolute、fixed定位,那么vertical-align属性再也不起做用 

 font-size单位

咱们在写字体的尺寸的时候经常使用的单位有less

  • px
  • pt
  • em
  • rem

这些字体分别有什么含义?字体

  1. px是pixel缩写,是基于像素的单位.在浏览网页过程当中,屏幕上的文字、图片等会随屏幕的分辨率变化而变化,一个100px宽度大小的图片,在800×600分辨率下,要占屏幕宽度的1/8,但在1024×768下,则只占约1/10。因此若是在定义字体大小时,使用px做为单位,那一旦用户改变显示器分辨率从800到1024,用户实际看到的文字就要变“小”(天然长度单位),甚至会看不清,影响浏览。 
  2. pt是point(磅)缩写,是一种固定长度的度量单位,大小为1/72英寸。若是在web上使用pt作单位的文字,字体的大小在不一样屏幕(一样分辨率)下同样,这样可能会对排版有影响,但在Word中使用pt至关方便。由于使用Word主要目的都不是为了屏幕浏览,而是输出打印。当打印到实体时,pt做为一个天然长度单位就方便实用了:好比Word中普通的文档都用“宋体 9pt”,标题用“黑体 16pt”等等,不管电脑怎么设置,打印出来永远就是这么大。
  3. em:是相对单位,是一个相对长度单位,最初是指字母M的宽度,因此叫em,现指的是字符宽度的倍数,用法相似百分比,如:0.8em, 1.2em,2em等。一般1em=16px(浏览器默认字体大小16px),em是指父元素的字体大小。在一个页面上给定了一个父元素的字体大小,这样就能够经过调整一个元素来成比例的改变全部元素大小.它能够自由缩放,好比用来制做可伸缩的样式表。相似还有ex的概念,ex 相对于字符“x”的高度,此高度一般为字体尺寸的一半。
  4. rem:rem是CSS新增的,em是相对于其父元素来设置字体大小的,这样就会存在一个问题,进行任何元素设置,都有可能须要知道他父元素的大小,在屡次使用时,就会带来没法预知的错误风险。而rem是相对于根元素<html>(r:root),使用rem咱们只须要在根元素肯定一个参考值,而后就能够控制整个html页面全部字体了。

 

怎样让图片不被加载

img标签,不管显示与否,图片都会被加载(因此试图经过对图片display:none来达到节省网络流量的作法就省省吧。。。)常用backgroung-image等css属性为页面添加图片,这些图片是否是必定会被加载呢,看个例子url

复制代码
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .useless{
            background-image: url(images/0.jpg);
        }
        .hidden{
            background-image: url(images/1.jpg);
        }
        .none{
            background-image: url(images/2.jpg);
        }
        .parentHidden{
            background-image: url(images/3.jpg);
        }
        .parentNone{
            background-image: url(images/4.jpg);
        }
    </style>
</head>
<body>
    <div class="hidden"></div>

    <div class="none"></div>

    <div style="visibility:hidden;">
        <div class="parentHidden"></div>
    </div>

    <div style="display:none;">
        <div class="parentNone"></div>
    </div>
    
    <div style="display:none">
        <img src="images/5.jpg"></div>
</body>
</html>
复制代码

看一下网络监视状况spa

 咱们能够发现图片0和4没有被下载,0是没有用到的CSS,4是父容器的display被设为none的状况,这两种状况下的CSS引用的图片是不会被加载的,而父容器设置visibility属性为hidden仍然会加载图片
也就是说css当中设置了background-image但html当中未引用这个css样式那么此样式中的background-image图片不会被加载3d

另外就是css当中设置了background-image可是html当中引用此样式的父容器的display:none,这样状况下图片也不会被加载!

相关文章
相关标签/搜索