Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:不会前端的php是找不到工作的
按自己理解的方式详细描述 em,rem 的原理与应用场景 ,并实例演示 2. 分析 rem / em /vh/ vw 的区别与联系
em 的应用
<style>
自定义html标签中的font-size属性
html {
font-size: 20px;
}
h2 {
font-size: 2em;
color: skyblue;
}
</style>
</head>
<body>
<h2>PHP是世界上最美丽的语言</h2>
</body
效果演示:
代码:
<style>
.box {
width: 10em;
height: 10em;
background-color: skyblue;
}
html {
font-size: 20px;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
演示效果:
<style>
/* 设置按钮的基本样式 */
.btn {
background-color: skyblue;
padding: 0.5em 1em;
border-radius: 0.3em;
border: none;
outline: none;
}
/* 设置按钮的动态样式 */
.btn:hover {
opacity: 0.8;
cursor: pointer;
box-shadow: 1em #888888;
transition: 0.3s;
}
/* 通过修改font-size属性实现按钮的响应式 */
.small {
font-size: 12px;
}
.normal {
font-size: 16px;
}
.larger {
font-size: 20px;
}
</style>
</head>
<body>
<button class="btn small">按钮</button>
<button class="btn normal">按钮</button>
<button class="btn larger">按钮</button>
</body>
效果演示:
<style>
body {
font-size: 1.25em;
}
h2 span {
font-size: 1em;
}
</style>
</head>
<body>
<h2>php.cn</h2>
<h2>php.cn<span>PHP中文网</span></h2>
</body>
这里 span 标签继承了 h2 标签 font-size 的属性
而 h2 标签中的 font-size 大小为 30px,
所以 span 标签中的 font-size 大小为 30px,而不是 body 标签 font 属性定义的 20px
rem定义字号代码
<title>rem定义字号</title>
<style>
body {
font-size: 1.25em;
}
h2 span {
font-size: 0.5em;
}
</style>
</head>
<body>
<h2>php.cn</h2>
<h2>php.cn<span>PHP中文网</span></h2>
</body>
效果演示
当前 font-size 属性出现在了 body 中;body 定义的 em 大小可以看做一个常量。因为 em 具有继承性,所以 body 的所有后代元素想用应用 body 中的字号的话就不能再使用 em。此时需要使用到 rem 来引用 body 中的字号
(继承性和相对性)
<style>
html {
font-size: 12px;
}
.panel {
font: size 1rem;
padding: 1em;
border-radius: 0.5em;
border: 1px solid #999;
background-color: #eee;
margin: 2em;
}
.panel h2 {
font-size: 1.2rem;
margin: 1.5em 0;
}
.panel p {
font-size: 1.1rem;
text-indent: 2em;
line-height: 2;
}
/* 响应式 */
@media screen and (min-width: 800px) {
html {
font-size: 0.875em;
}
.panel {
background-color: wheat;
}
}
@media screen and (min-width: 1000px) {
html {
font-size: 1em;
}
.panel {
background-color: lightgray;
}
}
@media screen and (min-width: 1200px) {
html {
font-size: 1.25em;
}
.panel {
background-color: skyblue;
}
}
</style>
效果演示
<style>
.box {
height: 50vh;
width: 50vw;
background-color: skyblue;
margin: auto;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
效果演示
<style>
.box {
height: 50vh;
width: 50vw;
background-color: skyblue;
margin: auto;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
演示效果