HTML与CSS学习总结基础3

结构伪类选择器

作用:根据元素的结构关系查找元素

选择器说明
E:first-child查找第一个E元素
E:last-child查找最后一个E元素
E:nth-child(N)查找第N个E元素(第一个元素N值为1)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>       
       li:first-child{
        color:green;
       }
       li:last-child{
        color:rgb(244, 109, 131);
       }
       li:nth-child(3){
        color:purple;
       }      
    </style>
</head>
<body>
    <ul>
        <li>ewrw</li>
        <li>wrwrw</li>
        <li>erwe</li>
        <li>ertet</li>
        <li>erterte</li>
    </ul>
</body>
</html>

:nth-child(公式)

作用:根据元素的结构关系查找多个元素

功能公式
偶数标签2n
奇数标签2n+1;2n-1
找到7的倍数的标签7n
找到第7个以后得标签n+7
找到第7个以前的标签-n+5

n默认从0开始

伪元素选择器

作用:创建虚拟元素(伪元素),用来摆放装饰性的内容

选择器说明
E::before在E元素里面最前面添加一个元素
E::after

在E元素里面最后面添加一个元素

注意:1、必须设置content:“ ”属性来设置伪元素的内容,如果没有内容,引号内容留空

           2、伪元素默认是行内显示模式

           3、权重和标签选择器相同

PxCook

Pxbox(像素大厨)是一款切图设计工具软件,支持PSDW文件的文字、颜色、距离自动智能识别。

  • 开发面板(自动智能识别)
  • 设计面板(手动测量尺寸和颜色)

盒子模型

布局网页,摆放盒子和内容

盒子模型的重要组成部分

  • 内容区域 - width&height
  • 内边距 - Padding(内容与盒子边缘的距离)
  • 外边距 - margin
  • 边框线 - border

边框线

属性名:border(bd)

属性值:边框线粗细、线条样式(solid:实线;dashed:虚线;dotted:点线)、颜色(不区分顺序)

border:1px solid red;(1像素红色实线)

border-方位词

border-top(上边框)

border-bottom(底边框)

border-left(左边框)

border-right(右边框)

内边距

作用:设置内容与盒子边缘之间的距离

属性名:Padding

同上有padding-方位词的使用方法

内边距多值写法

取值个数示例含义
一个值padding:10px;四个方位内边距都是10px
四个值padding:10px 15px 10px 20px;分别表示上、右、下、左的内边距
三个值padding:20px 30px 40px;分别表示上、左右、下
两个值padding:40px 20px;分别表示上下、左右

尺寸计算

默认情况

盒子尺寸=内容尺寸+border尺寸+内边距尺寸

给盒子加border/padding会撑大盒子

两种解决办法

1、手动做减法,减去border/padding的尺寸

2、内减模式:box-sizing:border-box(不需要手动计算,加border和padding也不会撑大盒子)

外边距

属性名:margin

与padding属性值写法相同

外边距在盒子外,不会撑大盒子

居中写法:

margin:0 auto;

前提是盒子要有设置宽度width。

清除标签默认样式

*{

        margin:0;

        padding:0;

}

去掉有序、无序列表前的项目符号方法:

li{
    list-style:none;
}
*{
margin:0;
padding:0;
box-sizing:border-box;
}

元素溢出

作用:控制溢出元素内容的显示方式

属性名:overflow

属性值

属性值效果
hidden溢出隐藏
scroll溢出滚动(显示滚动条位置,无论是否溢出)
auto溢出滚动(溢出才显示滚动条位置)

外边距问题

外边距合并

场景:垂直排列的兄弟元素,上下margin会合并

现象:取两个margin中的较大值生效

塌陷问题

场景:父子级的标签,子级的标签添加上外边距会产生塌陷问题

现象:导致父级一起向下移动

解决方法

1、取消子级margin,父级设置padding

2、父级设置overflow:hidden

3、父级设置border-top

行内元素-内外边距问题

场景:行内元素添加margin、padding,只能改变水平位置,无法改变元素垂直位置

解决方法:给行内元素添加line-height可以改变垂直位置

span{
    margin:70px;
    padding:80px;
    line-height:90px;    /*行高可以改变垂直位置*/
}

圆角模型 - 圆角

作用:设置元素的文本框为圆角

属性名:border-radius

属性值:数字+px/百分比(如果是多个数值,即从左上角开始顺时针赋值,没有取值的角与对角值取值相同)

圆角最大半径为50%。

盒子模型 - 阴影

作用:给元素设置阴影效果

属性名:box-shadow

属性值:x轴偏移量    y轴偏移量   模糊半径   扩散半径   颜色   内外阴影

注意:

  • x轴偏移量和y轴偏移量必须书写
  • 默认是外阴影,内阴影需要添加inset

综合案例

做个如下图所示的盒子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>        
        /*前期准备工作*/
       a{
        text-decoration: none;
       }
       *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
       }
       li{
        list-style: none;
       }

       /*开始画盒子模型*/

       .xinwen{     /*大盒子*/
            width:360px;
            height: 200px;
        /* background-color: rgb(253, 252, 252);设置背景色是为了方便测试 */
            margin:150px auto;

       }
       .xinwen .c1{    /*第一个盒子*/
            height: 36px;
            background-color: #eee;
            border:1px solid #dbdee1;
            border-left:none;
            
       }
       .xinwen .c1 a{    /*第一个盒子的a标签*/
    
            display: block;
            width:48px;
            height: 34px;
            background-color: white;           
            border-top:3px solid #ff8400;
            border-right:1px solid #dbdee1;
            margin-top: -1px;   /*把盒子网上挪动,使橙色部分和父级边框重合 */


            line-height: 34px;
            text-align: center;    /*使文字居中对齐*/
            font-size:14px;
            color:#333;         /*链接文字的颜色*/
            
       }
       .xinwen .c2{
            padding:5px;

       }
       .xinwen .c2 li{
            background-image:url(./c.jpg);    /*设置第一个背景图,橙色点点*/
            background-repeat: no-repeat;     
            background-size: 10px;            /*背景图大小*/
            background-position: 0 center;    /*背景图垂直方向居中对齐*/
            padding-left: 15px;             /*设置li列表内容左边距,这里的背景图不会一起移动是因为设置的不是img标签的padding*/

       }
       /*第二个盒子的a标签*/
       .xinwen .c2 li a{
            background: url(./p.jpg) no-repeat;
            background-size: 14px;
            background-position: 0 center;
            padding-left: 17px;


            font-size: 12px;
            color:#666;
            line-height: 24px;

       }

       .xinwen .c2 li a:hover{
            color:#ff8400;
       }

       
       

    </style>
</head>
<body>
    <div class="xinwen">
    <div class="c1">
        <a href="#">新闻</a>
    </div>
    <div class="c2">
        <ul>
            <li><a href="#">春眠不觉晓</a></li>
        </ul>
        <ul>
            <li><a href="#">处处闻啼鸟</a></li>
        </ul>
        <ul>
            <li><a href="#">夜来风雨声</a></li>
        </ul>
        <ul>
            <li><a href="#">花落知多少</a></li>
        </ul>
        <ul>
            <li><a href="#">寒食东风御柳斜</a></li>
        </ul>
    </div>
</div>
</body>
</html>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值