盒子的基本属性

来自CloudWiki
Cloud17讨论 | 贡献2020年11月8日 (日) 15:22的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
  • 盒子属性是盒子模型的关键

盒子模型的结构

  • 一个典型的盒子的结构:
  • W2-14.png

盒子的宽度和高度

  • CSS样式规则中使用width和height
  • 注意:标准盒子模型的width仅指块级元素的内容区域大小
  • W2-15.png

盒子的其他属性

  • border(边框):盒子外壳本身的厚度
  • padding(内填充):内容与边框间的距离
  • margin(外边距):盒子与其他盒子之间的距离
  • box-shadow(阴影):盒子的阴影
  • background(背景):盒子的背景颜色
  • W2-14.png

内填充属性

盒子的padding属性,指盒子的内边距(或内填充)

  • 可能的值:
length 	规定以具体单位计的填充值,比如像素、厘米等。默认值是 0px
% 	规定基于父元素的宽度的百分比的填充 

Web4-4.png

  • 可以使用综合的样式属性padding同时设置四个方向的填充,具体用法如下:
padding:四个方向统一值;	
padding:上下值 左右值;	
padding:上 左右 下;	值1设置上填充,值2设置左右填充,值3设置下填充。
padding:上 右 下 左;	四个值分别设置上、右、下、左四个方向的填充。
  • 想一想:以下分别在哪个方向设置填充值?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title>
<style>
.ex1 {padding:15%;border:solid;}
.ex2 {padding:5% 15%;border:solid;}
.ex3 {padding:5% 15% 7%;border:solid;}
.ex4 {padding:5% 10% 15% 7%;border:solid;}
</style>
</head>

<body>
<div class="ex1">这个文本两边的填充边距一样。每边的填充边距为15%。</div>
<div><p>盒子1</p></div>
<div class="ex2">这个文本的顶部和底部填充边距都为5%,左右的填充边距为15%。</div>
<div><p>盒子2</p></div>
<div class="ex3">这个文本的顶部内边距都为5%,底部内边距为7%,左右的填充边距为15%</div>
<div><p>盒子3</p></div>
<div class="ex4">这个文本的顶部内边距都为5%,底部内边距为7%,左填充边距为10%,右填充边距为15%</div>
<div><p>盒子4</p></div>
	
	
</body>
</html>
  • 试一试:W3C实例
  • 终极大杀器:如果忘了padding几个方向的排放次序,可以用下面的几个属性:
padding-top:   上填充; 
padding-bottom:下填充;
padding-left:   左填充;
padding-right:  右填充;

例:

600px

CSS:

<style type="text/css">
*{padding: 0; margin: 0;} 
/*将页面元素的默认内外边距置零*/
.box{
	border: 1px solid;
	padding:20px; 
	padding-bottom:0; 	}   
.box p{ 
	border: 1px dashed red;
	padding:5%;}  
</style> 

html :

<body>
	<div class="box">
	<p>7月8日讯,据每经网报道,近日,国家知识产权局商标局网站显示,华为技术有限公司申请了多个与HarmonyOS有关的商标,包括HUAWEI HarmonyOS、HarmonyOS Connected、HarmonyOS Linked等。随后,有消息称,搭载鸿蒙 OS 的手表等终端产品或于不久后发布。华为方面表示,申请“HarmonyOS”只是正常的商业流程。</p>
	</div>
</body>

外边距属性

  • 围绕在元素边框的空白区域是外边距(margin)。设置外边距会在元素外创建额外的“空白”。
  • 可能的值:
auto 	浏览器计算外边距。
length 	规定以具体单位计的外边距值,比如像素、厘米等。默认值是 0px。
% 	规定基于父元素的宽度的百分比的外边距。

Web4-5.png

  • 可以使用综合的样式属性margin同时设置四个方向的边距,具体用法如下:
margin:四个方向统一值;	
margin:上下值 左右值;	
margin:上 左右 下;	值1设置上边距,值2设置左右边距,值3设置下边距。
margin:上 右 下 左;	四个值分别设置上、右、下、左四个方向的边距。
  • 想一想:以下分别在哪个方向设置填充值?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title>
<style>
.ex1 {margin:5%;padding:3%;border:solid;}
.ex2 {margin:5% 15%;padding:3%;border:solid;}
.ex3 {margin:5% 15% 7%;padding:3%;border:solid;}
.ex4 {margin:5% 10% 15% 7%;padding:3%;border:solid;}
</style>
</head>

<body>
<div class="ex1">这个文本两边的外边距一样。每边的填充边距为5%。</div>
<div><p>盒子1</p></div>
<div class="ex2">这个文本的顶部和底部外边距都为5%,左右的外边距为15%。</div>
<div><p>盒子2</p></div>
<div class="ex3">这个文本的顶部外边距都为5%,底部外边距为7%,左右的外边距为15%</div>
<div><p>盒子3</p></div>
<div class="ex4">这个文本的顶部外边距都为5%,底部外边距为7%,左外边距为10%,外填充边距为15%</div>
<div><p>盒子4</p></div>
	
	
</body>
</html>
  • 试一试:W3C实例
  • 终极大杀器:如果忘了margin几个方向的排放次序,可以用下面的几个属性:
   margin-top
   margin-right
   margin-bottom
   margin-left
  • 思考:
    • 如何让网页页面随着浏览器窗口的缩小而缩小?
    • 如何让网页页面在页面窗口居中?
  • 思考:在IE6以上浏览器中使用W3C标准时,设置某个块级元素的样式为{width:600px; margin:30px; padding:20px; border:2px solid #f00;},该块级元素的总宽度是多少 ?

同时设置盒子的右外边距和下外边距,使盒子和父级元素之间拉开一定的距离,是一种常见的页面排版方法。


div{
	border:5px solid red;
	margin-right:50px;         /*设置盒子的右外边距*/
	margin-bottom:30px;        /*设置盒子的左外边距*/
	/*上面两行代码等价于margin:0 50px 30px 0;*/
}

例1:设置box-sizing属性时,只需考虑每个盒子总的宽度即可。

CSS3 box-sizing 属性

box-sizing 属性允许你以某种方式定义某些元素,以适应指定区域。

http://www.runoob.com/cssref/css3-pr-box-sizing.html

边框属性border

border 简写属性在一个声明设置所有的边框属性。

可以按顺序设置如下属性:

   border-width
   border-style
   border-color

例:

  p  {
  border:5px solid red;
  }

其中border-style可能的值为:dotted(点状边框)、dashed(虚线)、solid(实线)、double(双线)

如果不设置其中的某个值,也不会出问题,比如 border:solid #ff0000; 也是允许的。

border-style

Web4-2.png

  • border-style 属性用于设置元素边框的样式。
p
  {
  border-style:solid;
  }
  • 可能的值:
dotted 	定义点状边框。在大多数浏览器中呈现为实线。
dashed 	定义虚线。在大多数浏览器中呈现为实线。
solid 	        定义实线。
double 	定义双线。双线的宽度等于 border-width 的值。
<html>
<head>
<style type="text/css">
p.dotted {border-style: dotted}
p.dashed {border-style: dashed}
p.solid {border-style: solid}
p.double {border-style: double}
p.groove {border-style: groove}
p.ridge {border-style: ridge}
p.inset {border-style: inset}
p.outset {border-style: outset}
</style>
</head>

<body>
<p class="dotted">A dotted border</p>

<p class="dashed">A dashed border</p>

<p class="solid">A solid border</p>

<p class="double">A double border</p>

<p class="groove">A groove border</p>

<p class="ridge">A ridge border</p>

<p class="inset">An inset border</p>

<p class="outset">An outset border</p>
</body>

</html>

border-width

  • Web4-1.png
  • 设置四个边框的宽度:
p
  {
  border-style:solid;
  border-width:15px;
  }
  • "border-width" 属性如果单独使用的话是不会起作用的。请首先使用 "border-style" 属性来设置边框。
  • 可能的值:
thin 	  定义细的边框。
medium   默认。定义中等的边框。
thick 	  定义粗的边框。
length   允许您自定义边框的宽度。

border-color

Web4-3.png

  • 设置 4 个边框的颜色:
p
 {
 border-style:solid;
 border-color:#ff0000 #0000ff;
 }
  • 可能的值:
颜色名称 	规定颜色值为颜色名称的边框颜色(比如 red)。
颜色代码 	规定颜色值为十六进制值的边框颜色(比如 #ff0000)。
rgb值   	规定颜色值为 rgb 代码的边框颜色(比如 rgb(255,0,0))
  • "border-color" 属性如果单独使用的话是不会起作用的。请首先使用 "border-style" 属性来设置边框。
  • 试一试:W3C实例

案例

<html>

<head>
<title>我的第一个 HTML 页面</title>
<style type="text/css">
   div { border:3px solid red;
         padding:5% 6% 7% 8%;
         margin:5% 6% 7% 8%;}
</style>
</head>

<body>
   <div>body 元素的内容会显示在浏览器中。</div>

</body>

</html>