显示模式、CSS特性、伪类、背景background

一.显示模式分类

1.块级标签

  • 独占一行显示
  • height、width、line-height、font、margin、padding可正常设值
  • 元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致)

2. 行内元素

  • 在同一行上显示
  • height、width、line-height、font、margin-top、mragin-bottom、padding-top、padding-bottom不能正常设值,但可用设置margin-left、margin-right、padding-left、padding-right
  • 元素的宽度就是它包含的文字或图片的宽度。

3. 行内块元素(img,input等):

  • 在同一行上显示
  • 元素的宽度就是它包含的文字或图片的宽度
  • height、width、line-height、font、margin、padding可正常设值
  • img标签默认宽度是图片的宽度,input宽度也有自己的默认宽度(比较特殊)

二.显示模式转换

1.转换方式

  • 行内元素→块级元素(display:block;)
  • 行内元素→行内块元素(display:inline-block;)
  • 块级元素→行内元素(display:inline;)
  • 块级元素→行内块元素(display:inline-block;)
  • 行内块元素→行级元素(display:block;)

2. 注意

  • 行内块元素XXX 行内元素 (无法转换成功,行内块元素转换为行内元素是没必要的,只需不设置块级特有的属性那么就是行内元素)

三.CSS特性

1.层叠性

  • 介绍

    • 在权重相同的情况下,在同一个标签中样式发生冲突,后面定义样式会将前面定义的样式给覆盖掉
  • 注意

    • 只跟定义的顺序有关,与调用的顺序无关

    • 如果外部样式引用在内嵌样式<style>标签后,也会把<style>中冲突的样式覆盖掉(但实际开发中link标签引用外部样式都会在

2. 权重

  • 比较

    • 浏览器默认样式<继承样式<通配符(*)<标签选择器<类选择器|伪类选择器|属性选择器<ID选择器<行内样式<!important
  • 注意

    • 权重可以叠加(不能越级)
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        /* 假如ID选择器为A等级、类选择器为B等级、标签选择器为C等级 */
 
        /* 权重从大到小排序 */
        /* 当权重一样时,会发生层叠 */
        /* 先比较最高权重A的数量,当A数量一致再比较B数量,如果B数量一致就比较C数量,直接比较出结果为止 */
        #container div.box p.content {}  /* 1A2B2C */
        #container .box p.content {}     /* 1A2B1C */
        #container div.box .content {}   /* 1A2B1C */
        #container .box .content {}      /* 1A2B   */
        #container .content {}           /* 1A1B   */
        .container .box .content {}      /* 3B     */
        .container .box p {}             /* 2B1C   */
    </style>
</head>
<body>
    <div id="container">
        <div class="box">
            <p class="content"></p>
        </div>
    </div>
</body>
</html>

3.继承性-

  • 介绍:在默认情况下,如果子元素没有设置样式,那么该子元素会受父元素的样式影响
  • 可继承的属性:color、text-系列、font-系列、line-系列、cursor
  • 特殊例子(某些可继承的属性在个别标签中无法正常继承)
    • h1~h6:自带font-size的em值、font-weight:bold
    • a:自带color值

四.伪类

1.L V H A(以a标签为例)

  • a:link

    • 设置标签的默认样式
    • 建议用a{}代替
  • a:vistited

    • 设置标签被访问过后的样式(a标签被点击后)
    • 只能设置有关颜色的样式
  • a:hover

    • 设置鼠标悬停在标签上时的样式
  • a:active

    • 设置标签被激活时的样式(鼠标移到a标签上,按住鼠标左键不放)

2. 注意

  • 以上4个伪类必须按照 L V H A 顺序写
  • :hover可以单独使用
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        a:link {
            color: black;
            text-decoration: none;
            font-size: 16px;
        }
 
        a:visited {
            color: black;
        }
 
        a:hover {
            color: yellowgreen;
        }
 
        a:active {
            color: red;
        }
    </style>
</head>
<body>
    <a href="#">超链接</a>
</body>
</html>

3.其他伪类

  • 选择器:focus{}

    • 当标签获取焦点时设置该标签的样式
  • :empty{}

    • 查找内容为空的标签(不能带空格,编辑器中标签不能换行)
  • :not(选择器)

    • 排除选择器中的元素
  • 选择器:target
    *● 当点击某个a标签跳转到选择器所选中的标签时,改变所选中标签的样式

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        /* 当输入获得焦点时,把背景颜色变为灰色 */
        input:focus {
            background-color: gray;
        }
 
        /* 查找没有two类样式并且没有内容的div标签,并设置其样式 */
        div:not(.two):empty {
            width: 200px;
            height: 100px;
            background-color: pink;
        }
 
        /* 当点击某个a标签跳转到id值为one的元素时,该元素背景颜色变为黄色 */
        .one:target {
            background-color: yellow;
        }
    </style>
</head>
<body>
    <input>
    <br>
    <a href="#one">跳转</a>
 
    <div class="one" id="one"></div>
 
    <div></div>
</body>
</html>

五.背景(background)

1.backgrund-color

  • 背景颜色,默认值为透明transparent

2. backgrund-image

  • 背景图片,使用url(图片路径) 引用图片

3. backgrund-repeat

  • 背景图片平铺方式
    • repeat 默认值横向和纵向都平铺
    • no-repeat 不平铺
    • repeat-x 横向平铺
    • repeat-y 纵向平铺

4.backgrund-position

  • 背景图片相对于容器的位置,默认左上角(值left|right|top|bottom|center)
    • 当背景图片位置设置一个值的时候,第二个默认值是center
    • 当设置背景图片位置出现具体数字,第一个值代表水平方向,第二个值代表垂直方向
    • 当容器大小大于图片时是指定图片在容器中显示的位置
    • 当容器小于图片时,可以指定图片哪部分在容器中显示,常用于精灵图裁剪(第3、4点原理一样,可以把容器放大了思考)

5. 精灵图裁剪与logo常用做法例子

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>精灵图裁剪</title>
    <style type="text/css">
        .logo {
            display: block;
            width: 87px;
            height: 35px;
            /* 第一个值负数表示背景图片往左移动,正数往右移动 */
            /* 第二个值负数表示背景图片往上移动,正数往下移动 */
            background: url(qq.png) no-repeat -349px -110px;
            /* logo超链接内容移除,大网站都是用这种方法做logo */
            /*原理:正数的缩进,文字会往右移动,即使缩进很多像素也会自动换行在页面中显示,
                    而负数的缩进就会往左移动,设置超多像素后就会在那一行超出浏览器可视区域,达到隐藏的效果
            */
            /* 通过把内容溢出容器(方法好多),再用overflow:hidden;也可以移除超链接内容,*/
            text-indent: -10000px;
        }
    </style>
</head>
<body>
    <a class="logo" href="#">搜索网</a>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章