阶段性总结(CSS) 三

1.盒子模型

CSS盒子模型,用于封装html元素,包括边框,外边距,内边距,实际内容。

BoxModel: border,  content, padding, margin.

1.1border属性

.box{
    border-width:2px;
    /* 边框宽度 */
    border-color:black;
    /* 边框颜色*/
    border-style:solid;
    /* 边框样式,solid实线  dashed虚线  dotted点线 */
    border: 1px solid red;
    /* 复合写法 */
    border-collapse: collapse;
    /* 将相邻紧挨着的元素边框合并,只显示一条边框 */
}

1.2边框与三角

盒子模型border的本质是4个三角形拼接在一起形成边框(像相框一样),调整盒子本体大小可以使三角形完全显现,借此可以设计不同的三角形。

<body>
    <div class="ex1">
        1
        </div>
    <div class="ex2">
        2
        </div>
    <div class="ex3">
        3
        </div>
     <div class="ex4">
        4
     </div>  
</body>
<style>
            .ex1,
            .ex2,
            .ex3{
                width: 0;
                height: 0;
                border: 20px solid ;
                border-color:red yellow blue green ;
            }
            /* 并集选择器 */
            .ex2{
                border-color: red transparent transparent transparent;
            }
            /* 样式层叠特性 */
            .ex3{
                border-color: transparent blue blue transparent;
            }
            .ex4{
                width: 0;
                height: 0;
                border-style: solid ;
                border-color:transparent yellow transparent transparent ;
                border-width: 20px 20px 20px 0;
            }
        </style>

效果图为

 将盒子模型宽高都设为0,可以看到边框确实是由4个三角形拼接而成的,

因此当我们需要类似三角形样式时,便可以通过给其他3个边框设置border-color:transparent(透明),来隐藏,只显示我们所需的一条边框上的三角形,即可得到第2个的效果。同理设置两个相邻边框有颜色,则可以得到一个直角三角形。但这些情况下颜色透明的边框仍然占据着空间,因此我们将需要展示的一条边的对立方设置为border-width:0,便可以达成图4的效果。

注:border-solid不能为空,否则边框不显示

2.padding(内边距)

div{
    /* padding-top/right/bottom/left */
    padding: 5px 10px 15px 20px ;
    /* 设置内边距 顺序依次为 上,右,下,左 */
    /* 存在不同简写形式 */
    padding:5px;
    /* 全部设为5px */
    padding:5px 10px;
    /* 上下=5px,左右=10px */
    padding:5px 10px 20px;
    /* 上=5px,左右=10px,下=20px */
}

3.外边距

div{
    /* margin-top/right/bottom/left */
    margin: 5px 10px 15px 20px ;
    /* 其简写形式与padding相同 */
}

4.CSS3新增盒模型

  • border-box与content-box
  • 普通盒模型既content-box,盒子的宽高指的是content的宽高,border/padding会撑大盒子。
  • 怪异盒模型既border-box,盒子的宽高已经包含了包含了content,border,padding,即width的值就是最终盒子的大小。

通过下图(content-box)可以看出,padding内边距其实就是盒子的内容距离盒子边界的距离,而margin则是盒子边界距离其他元素边界的距离。

普通盒模型的最终大小为:content+padding+border。

通过设置属性box-sizing:border-box,可以转换为CSS3盒模型,使得盒子最终大小即为width/height的值。

 5.居中对齐

  • 块级盒子居中:块级盒子(已设置宽度)margin:0 auto,即可实现居中对齐
  • 行内块元素:为其父元素添加text-align:center,即可实现居中对齐

6.外边距合并

当两个相邻盒子的外边距相邻时并不会叠加,例如左盒子的margin-right和右盒子的margin-leftt。而是会取二者最大值作为两盒子的最终外边距。

  • 塌陷问题

嵌套在一个父元素div中的 子div 在设置了margin-top后,发现并没有和父元素的顶部拉开距离,而是带着父元素一起向下偏移了margin-top的长度,此即外边距塌陷。

<style>
        .father{
            width: 200px;
            height: 200px;
            background-color: skyblue;
        }
        .son{
            width: 50px;
            height: 50px;
            background-color: red;
            margin-top:50px;
        }
    </style>
<body>
    <div class="father">
        <div class="son">

            </div>
    </div>
    
</body>

 解决方法:

  • 为父元素定义边框
  • 为父元素定义内边距
  • 为父元素添加overflow:hidden

7.清除网页元素的内外边距

浏览器通常会自带默认的元素边距,这样不利于我们进行样式设置,因此通常会在最开始对网页元素进行清除边距的操作。这里用到了之前接触到的通配符选择器。

*{
    margin: 0;
    padding: 0;
        }

8.其他样式

 div{
border-radius:10px;
/*设置圆角边框,四个角可分开设置不同半径*/

box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
 /* 盒子阴影:x 偏移量 | y 偏移量 | 阴影模糊半径 | 阴影扩散半径 | 阴影颜色 */

text-shadow: 1px 1px 2px black;
/* 文字阴影:offset-x | offset-y | blur-radius | color */
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值