学习记录14 ——CSS盒模型(17/10/18于成都)

来源:互联网 发布:淘宝斗鱼 编辑:程序博客网 时间:2024/06/06 21:01

CSS盒模型


1.元素分类:

CSS布局之前,需提前知道,在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素内联元素(又叫行内元素)内联块状元素

常用的块状元素有:

<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

常用的内联元素有:

<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>

常用的内联块状元素有:

<img>、<input>


2.元素分类——块级元素:

在html中<div>、 <p>、<h1>、<form>、<ul> 和 <li>就是块级元素。

设置display:block就是将元素显示为块级元素。

如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点。

a{display:block;}

块级元素特点:

每个块级元素都从新的一行开始,并且其后的元素也另起一行;(真霸道(#°Д°),一个块级元素独占一行)

元素的高度、宽度、行高以及顶和底边距都可设置;

元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。


代码实例:

<!DOCTYPE HTML>
<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>内联块状元素</title>
<style type="text/css">
div,p{background:pink;}

(注意逗号","表示两者都设为后面的样式)
</style>
</head>


<body>
<div>div1</div>
<div>div2</div>
<p>段落1段落1段落1段落1段落1</p>
</body>


</html>


3.元素分类——内联元素:

在html中,<span>、<a>、<label>、 <strong> 和<em>就是典型的内联元素(inline)元素。

当然块状元素也可以通过代码display:inline将元素设置为内联元素

如下代码就是将块状元素div转换为内联元素,从而使 div 元素具有内联元素特点。

 div{     display:inline; }......<div>我要变成内联元素</div>

内联元素特点:

和其他元素都在一行上;

元素的高度宽度及顶部和底部边距不可设置;

元素的宽度就是它包含的文字或图片的宽度,不可改变。

内联元素之间有一个间距问题:

当行内元素之间有“回车”、“tab”、“空格”时就会出现间隙。
如下代码:
<div>
<a>1</a>
<a>2</a>
<span>33333</span>
<span>44444</span>
<em>555555</em>
</div>

解决方法:
写在一行,之间不要有空格之类的符号;使用font-size:0、div{font-size:0;}、a,span,em{font-size:16px;}


5.元素分类——内联块状元素:

内联块状元素(inline-block就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。

(css2.1新增),<img>、<input>标签就是这种内联块状标签。

inline-block 元素特点:

和其他元素都在一行上;

元素的高度、宽度、行高以及顶和底边距都可设置。


代码实例:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>内联块状元素</title>
<style type="text/css">
a{
        display:inline-block;(原本为 a 元素设置了宽和高,但没有起到作用,原因是a在默认的时候是内联元素,内联元素是不可以设置的。
width:20px;/*在默认情况下宽度不起作用*/
height:20px;/*在默认情况下高度不起作用*/
background:pink;/*设置背景颜色为粉色*/
text-align:center; /*设置文本居中显示*/
}
</style>
</head>
<body>
<a>1</a>
<a>2</a>
<a>3</a>
<a>4</a>
</body>
</html>


6.盒模型的实例生动详解(23333)

见imooc HTML+CSS基础课程的11-5


7.盒模型——边框:

1)

盒子模型的边框就是围绕着内容补白的线,这条线可以设置它的粗细样式颜色(边框)三个属性。

如下面代码为 div 来设置边框粗细为 2px、样式为实心的、颜色为红色的边框:

div{    border:2px  solid  red;}

上面是 border 代码的缩写形式,可以分开写:

div{    border-width:2px;    border-style:solid;    border-color:red;}

注意:

border-style(边框样式)常见样式有:dashed(虚线)| dotted(点线)| solid(实线)。

border-color(边框颜色)中的颜色可设置为十六进制颜色,如:

border-color:#888;//前面的井号不要忘掉。

border-width(边框宽度)中的宽度也可以设置为:最常用象素(px),thin | medium | thick(但不常用)。


2)

现在有一个问题,如果想为 p 标签单独设置下边框,其它三边都不设置边框样式,css 样式中允许只为一个方向的边框设置样式:

div{border-bottom:1px solid red;}

同样可以使用下面代码实现其它三边(上、右、左)边框的设置:

border-top:1px solid red;border-right:1px solid red; border-left:1px solid red;

代码实例:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>边框</title>
<style type="text/css">
li{
    border-bottom:1px dotted #ccc;
}

</style>
</head>
<body>
<ul>
    <li>别让不会说话害了你</li>
    <li>二十七八岁就应该有的见识</li>
    <li>别让不好意思害了你</li>
</ul>
</body>
</html>


8.盒模型——宽度和高度:

盒模型宽度和高度和我们平常所说的物体的宽度和高度理解是不一样的,css内定义的宽(width)和高(height),指的是填充以里的内容范围

因此一个元素实际宽度(盒子的宽度)=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界。

元素的高度也是同理。

比如

css代码:

div{    width:200px;    padding:20px;    border:1px solid red;    margin:10px;    }

html代码:

<body>   <div>文本内容</div></body>

元素的实际长度为:10px+1px+20px+200px+20px+1px+10px=262px。在chrome浏览器下可查看(√)元素盒模型,如下图:


代码实例:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>宽度和高度</title>
<style type="text/css">
li{
    border-bottom:1px dotted #ccc;
    width:200px;height:30px;
}
</style>
</head>
<body>
<ul>
    <li>别让不会说话害了你</li>
    <li>二十七八岁就应该有的见识</li>
    <li>别让不好意思害了你</li>
</ul>
</body>
</html>


9.盒模型——填充:

元素内容边框之间是可以设置距离的,称之为“填充”。填充也可分为上、右、下、左(顺时针)。如下代码:

div{padding:20px 10px 15px 30px;}

顺序一定不要搞混。可以分开写上面代码:

div{   padding-top:20px;   padding-right:10px;   padding-bottom:15px;   padding-left:30px;}

如果上、右、下、左的填充都为10px;可以这么写

div{padding:10px;}

如果上下填充一样为10px,左右一样为20px,可以这么写:

div{padding:10px 20px;}

代码实例:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>填充</title>
<style type="text/css">
#box1{
    width:100px;
    height:100px;
    padding:10px;
    border:1px solid red;
}
</style>
</head>
<body>
<div id="box1">盒子1</div>
</body>
</html>


10.盒元素——边界:

元素与其它元素之间的距离可以使用边界(margin)来设置。边界也是可分为上、右、下、左。如下代码:

div{margin:20px 10px 15px 30px;}

也可以分开写:

div{   margin-top:20px;   margin-right:10px;   margin-bottom:15px;   margin-left:30px;}

如果上右下左的边界都为10px;可以这么写:

div{ margin:10px;}

如果上下边界一样为10px,左右一样为20px,可以这么写:

div{ margin:10px 20px;}

总结一下:padding和margin的区别,padding在边框里,margin在边框外。

代码实例:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>边距</title>
<style type="text/css">
div{
    width:300px;
    height:300px;
border:1px solid red;
}
#box1{margin-bottom:30px;}
</style>
</head>
<body>
    <div id="box1">box1</div>
    <div id="box2">box2</div>   
</body>
</html>


*11.盒模型代码简写:

盒模型外边距(margin)、内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左

具体应用在margin和padding的例子如下:

margin:10px 15px 12px 14px;/*上设置为10px、右设置为15px、下设置为12px、左设置为14px*/

通常有下面三种缩写方法:

1)、如果top、right、bottom、left的值相同,如下面代码:

margin:10px 10px 10px 10px;

可缩写为:

margin:10px;

2)、如果top和bottom值相同、left和 right的值相同,如下面代码:

margin:10px 20px 10px 20px;

可缩写为:

margin:10px 20px;

3)、如果left和right的值相同,如下面代码:

margin:10px 20px 30px 20px;

可缩写为:

margin:10px 20px 30px;

注意:padding、border的缩写方法和margin是一致的。













原创粉丝点击