06-CSS盒子模型

目录

一、CSS三大特性

1)继承性

2)层叠性

3)优先级

1.优先级公式:

2.权重叠加计算

二、PxCook的基本使用

三、盒子模型

1)盒子模型介绍

2)内容区域的宽度和高度

3)边框 border

1. 属性值

2. 单方向设置

3. 单个属性(不实用)

4.新浪导航(案例)

4)内边距 padding

1. 复合属性

2. 新浪导航优化

3. CSS3盒模型(自动内减)

5)外边距 margin

1. 清除默认内外边距

2. 版心居中

3. 外边距折叠现象(合并现象)

4.外边距折叠现象(塌陷现象)

四、综合案例

1)新闻列表


一、CSS三大特性

1)继承性

2)层叠性

3)优先级

特性:不同选择器具有不同的优先级 优先级高的选择器样式会覆盖优先级低的选择器样式

1.优先级公式:

        继承<通配符选择器<标签选择器<类选择器<id选择器<行内样式<!important

注意点:

1. !important写在属性值的后面 分号的前面

2. !important不能提示继承的优先级 只要是继承优先级最低

3. 实际开发中不建议使用!important

2.权重叠加计算

二、PxCook的基本使用

三、盒子模型

1)盒子模型介绍

2)内容区域的宽度和高度

利用 widthheight 属性默认设置是盒子 内容区域 的大小

属性值:数字+px

3)边框 border

1. 属性值

单个取值的连写 取值之间以空格隔开(如 border: 10px solid red;)

2. 单方向设置

border-方位名词

3. 单个属性(不实用)

作用属性名属性值
边框粗细border-width数字+px
边框样式border-style实线solid、虚线dashed、点线dotted……
边框颜色border-color颜色取值

4.新浪导航(案例)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 清楚标签默认的margin和padding */
        *{
            margin: 0;
            padding: 0;
        }
    
        .daohang{
            border-top: 3px solid #ff8500;
            border-bottom: 1px solid #edeef0;
            height: 40px;

        }
        .daohang a{
            display: inline-block;
            text-decoration: none;
            width: 80px;
            height: 40px;
            color: #4c4c4c;
            text-align: center;
            line-height: 40px;
            font-size: 12px;
          
        }
        .daohang a:hover{
            background-color: #edeef0;
            color: #ff8400;
        }
    </style>
</head>
<body>
    <div class="daohang">
        <a href="#">新浪导航</a>
        <a href="#">新浪导航</a>
        <a href="#">新浪导航</a>
        <a href="#">新浪导航</a>
    </div>
</body>
</html>

4)内边距 padding

1. 复合属性

padding可做复合属性使用 表示单独设置某个方向的内边距

四值上      右      下      左
三值上      左右      下
两值上下      左右

2. 新浪导航优化

(导航文字字数变化 将原本规定的width取消掉 增加padding来调整左右边距)

    <style>    
        .daohang a{
            display: inline-block;
            text-decoration: none;
            /* width: 80px; */
            height: 40px;
            color: #4c4c4c;
            text-align: center;
            line-height: 40px;
            font-size: 12px;
            padding: 0px 16px;
        }
    </style>

3. CSS3盒模型(自动内减)

制作盒子300*300 边框10px黑色实线 上下左右20px内边距

因border/padding会撑大盒子

方案一:手动内减

width-240px(300-10*2-20*2=240)

方案二:自动内减

给盒子设置属性 box-sizing: border-box;

    <style>
        div{
            width: 300px;
            height: 300px;
            background-color: pink;
            border: 10px solid black;
            padding: 20px;
            box-sizing: border-box;
        }
    </style>

5)外边距 margin

(与内边距设置方式同 仅出现位置不同)

1. 清除默认内外边距

    <style>  
        *{
            margin: 0;
            padding: 0;
        }
    </style>

2. 版心居中

版心:网页的有效内容

margin: 0 auto;

3. 外边距折叠现象(合并现象)

场景:垂直布局块级元素,上下的margin会合并

结果:两者距离为margin的最大值

解决方法:只给其中一个盒子设置margin即可

4.外边距折叠现象(塌陷现象)

场景:互相嵌套块级元素,子元素的margin-top会作用在父元素上

结果:导致父元素一起向下移动

解决方法:

        ·  给父元素设置border-top / padding-top(分隔父子元素的margin-top)

        ·  给父元素设置overflow: hidden

        ·  转换成行内块元素      

        ·  设置浮动

四、综合案例

1)新闻列表

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        .news{
            width: 500px;
            height: 400px;
            /* background-color: pink; */
            border: 1px solid #cccccc;
            padding: 42px 30px 0;
            margin: 50px auto;

        }
        .news ul li{
            height: 50px;
            border-bottom: 1px dashed #cccccc;
            line-height: 50px;
            padding-left: 28px;
        }
        .news li a{
            text-decoration: none;
            font-size: 20px;
            color: #666666;
        }

        .news h2{
            font-size: 30px;
            border-bottom: 1px solid #cccccc;
            padding-bottom: 9px;
        }
        /* 去掉列表符号 */
        ul{
            list-style: none;
        }

    </style>
</head>
<body>
    <div class="news">
        <h2>最新文章/New Articles</h1>
        <ul>
            <li><a href="#" class="one">北京招聘网页设计,平面设计,php</a></li>
            <li><a href="#">体验javascript的魅力</a></li>
            <li><a href="#">jquery世界来临</a></li>
            <li><a href="#">网页设计师的梦想</a></li>
            <li><a href="#">jquery中的链式编程是什么</a></li>
        </ul>
    </div>
</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

biank trrrry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值