Day3 3-CSS其余操作

Day3 3-CSS其余操作

1.清除默认样式

两种方式,推荐方法一

/* 方法一:京东的通配符选择器*/
* {
	margin: 0;
	padding: 0;
}

/* 方法二:淘宝的并集选择器,其中包括一些已经淘汰的标签选择器 */
(一堆的并集选择器) {
	margin: 0;
	padding: 0;
}

注意:由于未来还要具体设置盒子的padding(和border),所以(在通配符选择器里)清除完内外边距后,紧接着设置內减模式box-sizing: border-box;

(弹幕区:为了更好适配设计稿,提升效率,先去掉所有标签样式;避免后期因为继承,优先级,层叠性三大特性的影响,频繁的来回修改代码)

2.内容溢出 - overflow

元素溢出属性 overflow

○ 控制溢出元素的内容显示方式

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

3.外边距margin的两个特殊现象 - 合并和塌陷

合并现象:

垂直排列的兄弟元素,上下margin会合并。并取两个margin中的较大值生效。

例如:

<style>
	.one {
            width: 100px;
            height: 100px;
            background-color: brown;
            margin-bottom: 20px;
        }

        .two {
            width: 100px;
            height: 100px;
            background-color: orange;
            margin-top: 50px;
        }
</style>
<body>
	<div class="one">one</div>
    <div class="two">two</div>
</body>

效果:"two"的上margin占满了两个盒子之间的空间,而非垂直上下的两个margin

塌陷现象

父子级的标签,子级的添加 上外边距 会产生塌陷问题,导致父级一起向下移动。

例如:

<style>
        .father {
            width: 300px;
            height: 300px;
            background-color: pink;

            margin-top: 10px;
        }

        .son {
            width: 100px;
            height: 100px;
            background-color: orange;

            margin-top: 50px;
        }
</style>
<body>
    <div class="father">
        <div class="son">son</div>
    </div>
</body>

○ 效果:son和father一起下沉

○ 解决办法:
 △● 取消 子级margin,并添加 父级padding
   ● 级设置 overflow: hidden 或者 border-top
      ○ 原理是让浏览器找到父级盒子的正确边缘
      ○ border也会撑大盒子。所以 后两个 里更推荐用 隐藏溢出

弹幕区
对于现象:
本质是css属性的优先级问题,son的优先级比father高。
父级div有文字,子级就不会拖父级下水。

对于解决办法:
○设置“溢出隐藏”的办法,简单理解就是隐藏溢出帮父级找到了原本在的位置
○我也觉得就是BUG,忽略了起始位置,后两种方法就是重新找到了正确的起始位置)

三个方法怎么用:

/* 外边距塌陷问题 */
.father {
	width: 300px;
	height: 300px;
	background-color: pink;

	margin-top: 10px;
	/* 方法1:padding-top: 50px; */
	/* 方法2:overflow: hidden; */
	/* 方法3:border-top: 1px solid #000;
		box-sizing: border-box;
	*/
}

.son {
	width: 100px;
	height: 100px;
	background-color: orange;

	/* 1. 若用padding方法 要将子级的margin隐藏 */
	margin-top: 50px;
}

4.行内元素垂直内外边距

前面的内容之所以都用 div 实验,是因为它稳定,添加的属性的效果基本上没问题。

行内元素(如span)添加 margin 和 padding,无法改变元素垂直位置

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

5.圆角与盒子阴影

1)盒子模型 - 圆角

border-radius
○ 设置元素的外边框为圆角
○ 属性值为 " 数字+px / 百分比 "
   ● 对应的样式是圆角的半径
   ● 几个值对应的角的记忆方法是“从左上角(通常的ui画布二维坐标原点)顺时针赋值,没有取值的角与对角取值相同”
   ● 其中圆角半径百分比最大的取值只有50%,超过了50%没有进一步的效果

常见应用:正圆形状;胶囊形状

  1. 正圆形状:给正方形盒子设置圆角属性值为 宽高的一半(50%)
  2. 胶囊形状:给长方形盒子设置圆角属性值为 盒子高度的一半

2)盒子模型 - 阴影(拓展)

box-shadow:给元素设置阴影效果

○ 属性值:X轴偏移量 Y轴偏移量 模糊半径 扩散半径 颜色 内外阴影(重点是X轴偏移量、Y轴偏移量

○ 注意:
   ● X 轴偏移量 和 Y 轴偏移量 必须书写
   ● 默认是外阴影,内阴影需要添加 inset

6.补充

表格边框设置与合并

    table {
      /* 合并边框 */
      border-collapse: collapse;
      height: 80px;
      margin: 0 auto;
      text-align: center;
    }

    th {
      padding: 5px 30px;
    }

    table,
    th,
    td {
      border: 1px solid #000;
    }

弹幕区:这里老师是加边框线,但是在学HTML的时候,大邱儿老师是在table后面加border="1",而合并单元格也是写在td里面用rowspan="2"

posted @ 2025-06-01 11:55  岑素月  阅读(15)  评论(0)    收藏  举报