盒模型、媒体查询及em和rem的用法
16lz
2022-05-01
1. 盒模型
内容
1. 创建一个400*400的盒子
2. box-sizing的border-box属性(将盒子的大小定义为到边框的距离)可以解决边框被盒子撑开等一系列问题
3. padding 属性
4. border 属性
5. 建立两个盒子 练习常用属性的用法 验证两个盒子之间margin的值由数值较大方决定
1.创建一个400*400的盒子
效果图
代码
<div class="box"></div>
<!-- <div class="box"></div> -->
<style>
.box{
width: 400px; /* 宽度 */
height: 400px; /* 长度 */
background-color: aqua;
border: 10px solid blue; /* border是与外界的边框 内容是与外面的边界 */
padding: 20px ; /* padding是透明的 要想看到需要用下面代码剪切 让背景只覆盖内容区,不要覆盖到整个padding区 */
/* background-clip: content-box; */
}
如图创建一个400*400的盒子 但是最终计算结果包括padding内边距和border边框 为460*460
我想要一个真正300*300的盒子 要怎么做呢?
方法1 计算当前宽度 减padding内边距和border边框减去
计算 400-10-20-20-10=340 修改后最终得到400*400的盒子
效果图
1.
2.
代码
.box{
width: 340px;
height: 340px;
background-color: aquamarine;
border: 10px solid red;
padding:20px;
background-clip: content-box;
}
方法2.box-sizing的border-box属性 让当前宽高的边界扩充到边框上 就不用计算 效果都是一样的
代码
.box{
width: 400px;
height: 400px;
background-color: aqua;
border: 10px solid blue;
padding: 20px ;
background-clip: content-box;
box-sizing: border-box;
}
padding 属性
代码
.box{
/* 四值语法 上右下左 顺时针方向 */
padding:5px 10px 15px 20px;
/* padding:5px 10px 15px 10px ; 左右相等 上下不等 可以用下面三值语法 */
padding: 5px 10px 15px;
/* padding:5px 10px 5px 10px; 左右相同 上下相同 但是值不一样可以用下面双值语法 */
padding: 5px 10px;
/* 单值语法 padding:10px 10px 10px 10px; 四个方向全相同 */
padding: 10px;
}
border 属性
代码
.box{
/* background-clip: content-box; 这个去掉让背景色覆盖边框 */
border-right: 10px solid blue; /* 边框设置 第一个宽度 第二个样式 第三个颜色 */
border-left: 10px solid blue; /* 左边框*/
border-top: 10px solid blue; /* 上边框*/
border-bottom: 10px solid blue; /*下边框 */
/* 四个边都一样 语句简化 */
border: 10px solid red;
/* border: 10px dashed red; 背景色可以越过边框 */
}
margin属性
margin是控制多个格子之间排列的时候 控制每个盒子间隙的 是一个外边距
margin会在垂直方向出现折叠 谁大用谁的
效果图
1.
2.
代码
.box{
margin: 30px;
background-color: aqua;
}
.box:last-of-type{
margin-top: 50px;
background-color: blue;
}
2.媒体查询
内容
1.将html标签的字体大小调整为15个像素
2.当显示屏幕的像素在小于400时将html的字体大小调整为12个像素
2.当显示屏幕的像素在400~430之间时将html的字体大小调整为15个像素
3.当显示屏幕的像素在430以上时将html的字体大小调整为18个像素
效果图
1.
2.
3.
代码
<!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>
</head>
<body>
<button class="item a">item1</button>
<button class="item b">item2</button>
<button class="item c">item3</button>
<button class="item d">item4</button>
<style>
html{
font-size: 15px;
}
.item{
background-color: seagreen;
color: white;
border: none;
outline: none;
}
.item:hover {
cursor: pointer;
opacity: 0.8;
transition: 0.3s;
padding: 0.4rem 0.8rem;
}
.item.a{
font-size: 1.4rem;
}
.item.b{
font-size: 1.8rem;
}
.item.c{
font-size: 2.1rem;
}
.item.d{
font-size: 2.5rem;
}
/* 最大400px时生效,是不是当小于400px才有效果 */
@media(max-width:400px){
html{font-size:12px;
}
}
/* 400px-430px 之间 */
@media(min-width:400px) and (max-width:430px){
html{font-size:15px;
}
}
/* 大于430px */
@media (min-width:430px){
html {
font-size: 18px;
}
}
</style>
</body>
</html>
3.em和rem
3.1 em默认16px 会自动继承父元素 在继承父元素下 随着父元素改变而改变
效果图
3.1
3.2 而当父元素设置30px 1em就等于30px 2em就是60px
效果图
3.3 rem rem为根元素字符大小的单位 随着根元素字体大小而变化
在根元素中设置字号,其他地方引用rem 这个值是不变的 因为一个页面只有一个根元素
根元素为20px 父元素为30px 不受父元素影响 当前像素为20px*2=40px
效果图
代码
<style>
html{
font-size: 20px;
}
div{
font-size: 30px;
}
div span{
font-size: 2rem;
}
</style>
<div><span>hello word</span></div>
更多相关文章
- Android中用Spannable在TextView中给文字加上边框
- Android上实现柱状图表 可实现边框矩形 没填充色
- android TextView 设置部分文本 边框和样式
- android 常用代码
- android EditText输入框获得焦点时候边框变为变色
- Android控件指定方向加边框
- Android(安卓)相机拓展库,能够实时采集并且识别相机内物体边框是
- Android(安卓)对话框【Dialog】去除白色边框代码
- Android(安卓)shape中的padding无效