coderwhy--前端知识整合包--htmlcss03

coderwhy–前端知识整合包–html/css03

1、CSS文本属性

text-decoration:

  • underline:下划线
  • overline:上划线
  • line-through:中划线(删除)

letter-spacing和wordspacing(正负都行)

  • letter-spacing:字母之间的间距

    <head>
      <style>
        .one{
           letter-spacing:10px;
           <!--letter-space:-30px;-->
        }
      </style>
    </head>
    <body>
       <div class="one">
         456
       </div>
    </body>
    
  • wordspacing

    单词之间间距

text-tranform

  • 用于设置文字大小写转化

text-indent

  • 第一行内容缩进(空格)

    <head>
      <style>
        .one{
           text-indent:20px;
        }
      </style>
    </head>
    <body>
       <div class="one">
         456
       </div>
    </body>
    

text-align

  • 用于设置元素内容在元素中水平对齐方式

    • left左对齐

    • right右对齐

    • center中间显示

    • justify两端对齐 //最后一行没有效果,需要单独拿出属性text-align-last:justify去设置

      <!--居中对齐 因为div是一个块级元素,所以在div里嵌套div时被嵌套的div需要居中在设置宽度前提下不会出现居中显示的,所以需要在内部divdecss里添加display:inline-block-->
      
      <!--原因,因为是块级元素所以div里含有div时,会默认内部嵌套的div是跟外部div,css设置默认一致,若此时内部div设置了宽高,外部div会认为内部div是已经实现外部div的css设置,但内部div因为是块级元素不会被外部div的css设置,此时需要将其内部div设置为行内元素(将内部div设置成为不是块级元素就行了),这时外部div就会认为内部div不是块级元素需要被外部div的css设置-->
      <head>
          <style>
              .one{
                  text-align:center;
                  bg:#456;
              }
              .two{
                  display:inline-block;
                  width:200px;
                  bg:#789;
              }
          </style>
      </head>
      <body>
          <div class="one">
              <div class="two">
                  123456
              </div>
          </div>
      </body>
      

font-size

  • 决定字体大小 px

    <head>
        <style>
            .one{
               front-size:20px
            }
            p{
            front-size: 2em
            }
            <!--p部分相对div 为2*20px  em表示相对于父元素, 也可以设置百分比(基于父元素one的大小换算)-->
        </style>
    </head>
    <body>
        <div class="one">
        4444444
               <p> 123456</p>
        </div>
    </body>
    

font-family

  • 设置字体种类
  • 可以设置多个字体,如果不同语言需要显示不同字体,将私有的放前面公有的放后面

font-weight

  • 字体加粗

font-style

  • 设置斜体 默认为italic

font-varient

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jq2QmhQ-1600922544466)(C:\Users\Prince\AppData\Roaming\Typora\typora-user-images\image-20200709232725811.png)]

line-height

  • 用于设置文本的最小行高(可以理解为一行文字所占据的高度 ,但不一定等于文字高度
  • 定义为两行文字基线之间的间距
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jXSRsEq1-1600922544469)(C:\Users\Prince\AppData\Roaming\Typora\typora-user-images\image-20200709233711614.png)]

  • 行高应用:让文字在div内部垂直居中

  • line-height=文字高度+行距,等分

font

  • 缩写属性

  • font: font-varient font-weight font-size/line-height font family

  • .one {
      font :italic small-caps 700 20px/40px "微软雅黑";
    }
    
  • style、varient、weight可以随意调换顺序,/linrheight可以省略不省略必须跟在font-size后面

  • font-size、family不可以调换顺序也不能省略

2、更多选择器(伪类和伪元素)

伪类(pseudo-classes)

类型动态伪类、目标伪类、语言伪类、元素状态伪类、结构伪类否定伪类

(1)目标伪类
<head> 
:target{
          color:aquamarine;
      }
      </style>
</head>
<body>
    <a href="#one">dianji 1</a>
    <a href="#one2">dianji 2</a>
<!--达到一种点击后就能改变字体颜色-->

    <div id="one">
        <span class="title">45666</span>
        <div class="title">455555</div>
    </div>

    <div id="one2" title="test">
        <span class="title">45666</span>
        <div class="title">455555</div>
    </div>
</body>
(2)元素状态伪类
<head> 
    /*:disabled{
          color:aquamarine;
      }*/
    button[disabled]{
    color:red;
    }
      </style>
</head>
<body>
    <button disabled>
        button
    </button>
    <button>
        button
    </button>
</body>
(3)动态伪类(使用多个伪类时务必注意编写顺序

eg:a元素(hover必须放在link和visited后面,actice必须放在hover后面才能全部生效 lvfha)

a:link未访问链接

a:visited已访问链接

a:hover鼠标挪到链接

a:active激活链接

注意hover和active可以被其他元素使用

 <head>
 <style>
        a:link{
            background-color: aquamarine;
        }
        a:visited{
            background-color: bisque;
        }
        a:hover{
            background-color: blueviolet;
        }
        a:active{
            background-color: cornflowerblue;
        }
        strong:hover{
            font-size: 40px;
        }
        strong:active{
            color: crimson;
        }
    </style>
</head>
<body>
    <a href="#">baidu</a>
    <strong>456</strong>
    
</body>

:focus指当前拥有输入焦点的元素(接收键盘输入就是鼠标点进去)也适用focus

eg:

input:focus{
 background: red;
}
(4)结构伪类

:nth-child()(父元素的第几个子元素)

 <head>
 <!--注意:测试当nth-child中值为2时全变红,尚未找出答案-->
 <style>
        :nth-child(3){
            color:red;
        }
        /*
         :nth-child(2n-1){
            color:red;
        }
        :nth-child(2n+1){
            color:red;
        }<!--奇数变化-->
     
         :nth-child(2n){
            color:red;
        }<!--偶数变化-->
        <!--n可以为负数,最后任何取值都可以 所以有无数种组合 -n+5、2n+3 。。。。。-->
        <!--不同的n组合意味不同第n个元素变化-->
        */
    </style>
</head>
<body>
    <div>
        <p>1</p>
        <p>2</p>
        <p>3</p><!--red-->
        <p>4</p>
    </div>

    <div>
        <p>1</p>
        <p>2</p>
        <p>3</p><!--red-->
        <p>4</p>
    </div>

    <div>
        <strong>1</strong><!--red-->
        <strong>2</strong><!--red-->
        <strong>3</strong><!--red-->
    </div>

    <div>
        <p>1</p>
        <p>2</p>
        <p>3</p><!--red-->
        <p>3</p>
    </div>
</body>

:nth-last-child() 跟nth-child用法一样表示倒数第几个

:nth-of-type()、:nth-last-type()

  <head>
     <style>
         <!--忽略其他的只寻找p相关的第偶数个的元素,并对其进行修改-->
         <!--含有last就不用说了倒数开始寻找然后修改-->
        p:nth-of-type(2n){
            color:red;
        }
         <!--如果前面没有p,则寻找所有元素先关的第偶数个元素然后修改-->
        /* p:nth-child(3){
            color:blue;
        } */
    </style>
</head>
<body>
    <div>444444</div>
    <p>1</p>
    <p>2</p><!--red-->
    <span>2span</span>
    <p>3</p>
    <p>4</p><!--red-->
    <p>5</p>
    <p>6</p><!--red-->
</body>


下面举例
p:nth-of-type(2){background-color:red;}
<body>
    <p></p>
    <div>
        <p></p>
    </div>
    <div>
        <div>
            <p></p>
        </div>
        <p></p>
        <p></p><!--red-->
    </div>
    <p></p><!--red-->
</body>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJLkGlsI-1600922544472)(C:\Users\Prince\AppData\Roaming\Typora\typora-user-images\image-20200710210509415.png)]

:empty

:empty{
 height:20px;
 background-color:red;
}
<body>
    <p></p><!--为空,出现empty内容-->
    <div>
        <p>3233424</p>
    </div>
    <div>
        <div>
            <p>44444</p>
        </div>
        <p></p><!--为空,出现empty内容-->
        <p>  </p><!--有空格不算空-->
    </div>
    <p></p>
</body>
(5)否定伪类

:not(x):x可以为元素、通用、属性、类、id选择器、伪类喧杂器

<head>
    <style>
        <!--除了div的所有元素都要被设置-->
        :not(div){
            color:red;
        }
    </style>
</head>
<body>
    <div>45</div>
    <p>45</p>
    <span>45</span>
    <div>454</div>
</body>
伪元素(可以看做行内元素)
重要:因为是行内元素无法设置宽高,若想设置宽高可以采取display:inline-block进行设置行内块元素

注意任何元素一旦使用伪元素都需要重新设置display,使用伪元素默认变成行内级元素

伪元素两种写法 ::first-line、:first-line推荐两个:区分伪元素和伪类

(1)::before和::after(请当成元素)
  • 在元素前面和后面插入内容,应用一致这里只展示before

  • 不支持width

    span::before{
    content:"44444";<!--展示内容,不能省略,可以是一个图片的url content:url(“”),就算没有展示内容该属性也要加上-->
    color:red;
    }
    <!--默认before是一个元素,这里表示在span前放置44444内容
      类比<p style="color:red;">44444</p>
      -->
    <body>
      <span>44446666</span>
    </body>
    
(2)first-line:
只适用word-spacing、letter-spacing、text-decoration、text-transform、line-height

3、Emmet语法

生成子代元素

div>p>span>strong类似处理

生成兄弟元素

div+h2+p

div>p +div*3>span

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UfDH0sqT-1600922544476)(C:\Users\Prince\AppData\Roaming\Typora\typora-user-images\image-20200710221445701.png)]

分组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vuSKUt3r-1600922544480)(C:\Users\Prince\AppData\Roaming\Typora\typora-user-images\image-20200710221746721.png)]

生成元素属性

div#mian(id=mian)、div.one(class=“one”)

div#mian>div.box+p.p1+span.title^div#footer>div.box2

<div id="main">
    <div class="box"></div>
    <p class="p1"></p>
    <span class="title"></span>
</div>
<div id="footer">
    <div class="box2"></div>
</div>

生成元素内容

div{jkl}
<div>jkl</div>

div#main.one{jkl}
<div id="main" class="one">jkl</div>

div.box$3
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>

隐式标签

.main
<div class="main"></div>

ul>li.item${lie$}*3
<!--这里li可以省略,默认隐式为li而不是div-->
<ul>
  <li class="item1">lie1</li>
  <li class="item2">lie2</li>
  <li class="item3">lie3</li>
</ul>

css相关

.box{
 w200=width:200px;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QNxtBc4O-1600922544482)(C:\Users\Prince\AppData\Roaming\Typora\typora-user-images\image-20200710225503323.png)]

4、CSS特性

继承特性
  • 有些属性可以继承,子元素无父元素有,则子继承父
  • 不能继承的属性可以用inherited强制继承

    .box{
     width:500px;
     background-color:blue
    }
    img{
      width:inherited;
    }
    <body>
       <div class="box">
          <p>123</p>
          <img src="../image/jkl.jpg" alt=""/>
       </div>
    </body>
    

    注意子元素继承的是父元素的计算值,并不是当初编写的属性的指定值

    .box1{
     font-size:60px;
    }
    .box2{
     <!--30px-->
     font-size:0.5em
    }
    <!--继承的是计算完0.5em后的30px而不是0.5em,否则就显示15px了-->
    <body>
      <div class="box1"> 
         <div class="box2">
            <p>444</p>
         </div>
      </div>
    </body>
    
层叠特性
  • css允许相同类型属性层叠到一个元素上(没有的直接继承)

  • 当一个元素拥有多个选择器我们需要知道各个选择器的权重:默认

  • !important(10000)>内联样式在元素里自己设置的(1000)>id(100)>class、属性选择器、伪类(10)>元素选择器、伪元素(1)

  • 若有不同情况需要单独设置选择器的权重比例

    #main{
     color: blue;
     font-size:30px;
    }
    .box{
     color:green;
     font-size:12px !important;
     background-color:purple
    }
    div{
     color:yellow;
     font-size:40px
    }
    <div id="main" class=“box">44444</div>
    <!--这里color=blue font-size=12px-->
    
    .five#radio .one #three{
    color: blue;
    }
    #box #btn .our div span{
    color red;
    }
    <!--假设以上标签作用于同一个元素,那字体显示为blue,权重比价比较有一个要点,因为第一个标签的id选择器2个class选择器两个,而第二个id有两个class只有一个-->
    <!--若第一个只有一个id则显示第二个color,以为第二个id有两个,就是这个规律优先比较最大的,然后相同的话看下一级进行比较-->
    
css属性使用经验

css不好使:选择器优先级太低、选择器没选中对应元素、css属性使用形式不对(或者根本不支持)、浏览器不支持css属性

附录

color: blue;
font-size:30px;
}
.box{
color:green;
font-size:12px !important;
background-color:purple
}
div{
color:yellow;
font-size:40px
}

44444
```
.five#radio .one #three{
color: blue;
}
#box #btn .our div span{
color red;
}
<!--假设以上标签作用于同一个元素,那字体显示为blue,权重比价比较有一个要点,因为第一个标签的id选择器2个class选择器两个,而第二个id有两个class只有一个-->
<!--若第一个只有一个id则显示第二个color,以为第二个id有两个,就是这个规律优先比较最大的,然后相同的话看下一级进行比较-->
css属性使用经验

css不好使:选择器优先级太低、选择器没选中对应元素、css属性使用形式不对(或者根本不支持)、浏览器不支持css属性

附录

交集选择器与后代选择器区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值