一.box-sizing功能
<!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>box-sizing</title>
<style>
/* 初始化 */
* {
margin: 0;
padding: 0;
box-sizing: 0;
}
/* :root=== html */
:root {
/* font-size: 16px; */
font-size: 10px;
}
/* em,rem */
/* em:根据元素得上下文来确定它得值 */
/* rem:根据根元素得字号来设置 */
.box {
/* font-size: 16px; */
font-size: 20px;
/* width: 200px; */
/* width: 12.5em; */
/* width: 12.5rem; */
width: 22rem;
/* height: 200px; */
/* height: 12.5em; */
/* height: 12.5rem; */
height: 21rem;
border: 2px solid black;
color: red;
/* padding: 上,右,下,左;顺时针顺序 */
/* 四个值: */
padding: 10px 5px 5px 10px;
/* 三个值:左右相同,上下不同 */
padding: 8px 10px 8px ;
/* 二值简化 只要写到第二个参数位置上的一定代表的是左右值*/
padding: 8px 10px;
/* padding: 10px; */
padding: 1rem;
margin: 1rem;
background-color: lightgreen;
/* 考虑将W3C的标准盒子转为IE盒子 */
/* 将盒子的padding和border计算在width,height内*/
box-sizing: border-box;
/* 再转为标准盒子 */
box-sizing: content-box;
background-clip: content-box;
}
</style>
</head>
<body>
<div class="box">box</div>
<!-- <h2>hello</h2> -->
</body>
</body>
</body>
</html>
二.相对定位与绝对定位
<!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>定位</title>
<style>
html {
/* border: 1px solid black; */
}
.box {
width: 20em;
height: 15em;
background-color: lawngreen;
/* 默认:静态定位,就是没有定位 */
/* position: :static */
/* 相对定位:自动的转为定位元素 */
/* 定位元素:只要这个元素上有非static的定位属性,就是定位元素 */
/* position: relative; */
/* 只要是定位偏移量,定位偏移量就有效 */
/* 相对于它在文档中的原始位置进行定位 */
/* top: 5em;
left: 4em; */
/* position: absolute; */
/* 绝对定位元素脱离了文档流 */
/* 文档流:显示顺序与熟悉顺序一致 */
/* 相对于它在文档流中的原始位置进行定位 */
/* top: 5em; */
/* left: 4em; */
}
.parent {
border: 1px solid black;
/* 转为定位元素,作为绝对定位元素的父级/定位参考/定位包含快 */
position: relative;
/* top: 4em;、 */
/* left: 4em; */
min-height: 30em;
}
/* 固定定位 */
/* 永远相对于html定位 */
.box {
/* position: fixed; */
}
</style>
</head>
<body>
<!-- <div class="box"></div> -->
<!-- <h2>hello php</h2> -->
<div class="parent">
<!-- 父级定位元素 -->
<div class="box"></div>
</div>
</body>
</html>
三.绝对定位的一个应用:块级居中
<!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>绝对定位的一个应用:块级居中</title>
<style>
.box {
width: 15em;
height: 15em;
background-color: lawngreen;
}
/* 行内元素 */
.box {
/* 水平居中 */
/* text-align: center; */
/* 垂直居中 */
/* line-height: 15em; */
}
.parent {
border: 1px solid;
background-color: yellow;
width: 25em;
height: 25em;
/* 转为定位元素作为box的定位父级 */
position: relative;
}
/* 块元素居中 */
.box {
/* 水平居中 */
/* margin: auto auto auto auto; */
/* 上下auto,左右auto,但是没有出现我们想象中的垂直居中 */
/* margin: auto auto; */
/* margin: 0 80px; */
/* 为什么高度设置成auto是被解析成了0呢? */
/* 这是基于一个布局常识 */
/* 布局的前提:页面宽高受限制,而而高度仅限内容的影响 */
}
/* 使用绝对定位一步到位块元素垂直居中 */
.box {
position: absolute;
/* 定位空间 */
top: 0;
left: 0;
right: 0;
bottom: 0;
/* 水平和垂直的居中 */
margin: auto;
}
</style>
</head>
<body>
<div class="parent">
<div class="box"></div>
</div>
</body>
</html>