css的盒子模型

2020-01-31 16:01:39来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

css的盒子模型

width和height是指content内容的宽高

当width的值小于min-width时,则宽度为min-width

当width的值大于max-width时,则宽度为max-width

min-width和max-width存在兼容性问题,在IE6以下不支持


 

哪些元素可以设置宽高属性

块级元素
<p>、<div> 、 <h1> ~ <h6> 、<ul> 、<li> 、<ol>、<dl> 、<dt> 、<dd>等

替换元素
<img>、<input>、<textarea>等

如果图片既通过width来设置宽度,又通过css样式来设置宽度,最终宽度为css样式中设置的宽度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
         /*实际尺寸为200px*/
        img{width:200px;}
    </style>
</head>
<body>
    <img src="cat.jpg" alt="cat" width="100px">
    
</body>
</html>

border-style的值

none 定义无边框。默认值
hidden 与 “none” 相同。除非在表格元素中解决边框冲突时
dotted 定义点状边框。在大多数浏览器中呈现为实线
dashed 定义虚线。在大多数浏览器中呈现为实线
solid 定义实线
double 定义双线
groove 定义 3D 凹槽边框
ridge 定义 3D 垄状边框
inset 定义 3D inset 边框
outset 定义 3D outset 边框
inherit 规定应该从父元素继承边框样式

border可以四个边分开设置

border-left

border-right

border-top

border-bottom

    <style>
         p{width:200px;height:100px;border-top:1px solid blue;}
    </style>

padding缩写:

padding : 值1; //4个方向都为值1
padding : 值1 值2 ; // 上下=值1,左右=值2
padding : 值1 值2 值3;// 上=值1,左右=值2,下=值3
padding : 值1 值2 值3 值4; // 上=值1,右=值2,下=值3,左=值4


 

margin值可以为负值,padding值不可以为负值

垂直方向上,两个相邻元素都设置外边距,外边距会发生合并

合并高度=两个外边距高度中的最大值


标准盒子模型

宽度=内容宽度

高度=内容高度

盒子在页面中所占的宽度=左边距+左边框+左填充+内容宽度+右填充+右边框+右边距

盒子在页面中所占的高度=上边距+上边框+上填充+内容高度+下填充+下边框+下边距

盒子的实际宽度是:左边框+左内边距+内容宽度+右内边距+右边框

盒子的实际高度是:上边框+上填充+内容高度+下填充+下边框

IE盒子模型

宽度=左边框+左填充+内容宽度+右填充+右边框

高度=上边框+上填充+内容高度+下填充+下边框

盒子在页面中所占的宽度=左边距+宽度+右边距

盒子在页面中所占的高度=上边距+高度+下边距

如果有DOCTYPE文档声明,则所有浏览器会统一按照标准盒子模型来解析


display:inline; 内联,前后没有换行符

行内元素无法设置宽和高,外边距只能设置左右的,无法设置上下的

display:block; 块,前后带有换行符

内联元素之间有缝隙,是因为存在换行

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        span{border:1px solid;}
    </style>
</head>
<body>
    <span>内联元素1</span>
    <span>内联元素2</span>
    <span>内联元素3</span>
</body>
</html>

 

 

解决方法一:取消换行

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        span{border:1px solid;}
    </style>
</head>
<body>
    <span>内联元素1</span><span>内联元素2</span><span>内联元素3</span>
</body>
</html>

解决方法二:在外层加div,设置字体为0,给子元素单独设置字体

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{font-size:0px;}
        span{border:1px solid;font-size:16px;}
    </style>
</head>
<body>
    <div>
        <span>内联元素1</span>
        <span>内联元素2</span>
        <span>内联元素3</span>
    </div>
    
</body>
</html>

display:none 不显示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        a{color:#000;text-decoration: none;}
        span{display: none;;}
        a:hover span{display: inline-block;}
    </style>
</head>
<body>
    <a href="#">指我……<span>和你捉迷藏</span></a>
    
</body>
</html>

 


原文链接:https://www.cnblogs.com/chenyingying0/p/12245505.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:css字体样式+文本样式

下一篇:css背景颜色、背景图片,以及列表的多种样式