关于css盒子边框、内边距、外边距

html-css018

关于css盒子边框、内边距、外边距,第1张

使用width来设置盒子内容区的宽度 使用height来设置盒子内容区的高度 width和height只是设置的盒子内容区的大小,而不是盒子的整个大小,盒子可见框的大小由内容区,内边距和边框共同决定为元素设置边框 要为一个元素设置边框必须指定三个样式border-width:边框的宽度border-color:边框颜色border-style:边框的样式使用border-width可以分别指定四个边框的宽度 如果在border-width指定了四个值 则四个值会分别设置给上、右、下、左,按照顺时针的方向设置的 如果指定三个值 则三个值会分别设置给上、左右、下 如果指定两个值 则两个值会分别设置给上下、左右 如果指定一个值,则四边全都是该值 除了border-width,CSS中还提供了四个border-xxx-width xxx的值可能是top right bottom left 专门用来设置指定边的宽度* 设置边框的颜色 * 和宽度一样,color也提供四个方向的样式,可以分别指定颜色 例如:border-color: red /*border-color: red yellow orange blue*/ /*border-color: red yellow orange*/ /*border-color: red yellow*/ 格式和边框设置颜色相同.* 设置边框的样式 * 可选值: * none,默认值,没有边框 * solid 实线 * dotted 点状边框 * dashed 虚线 * double 双线 * * style也可以分别指定四个边的边框样式,规则和width一致,同时它也提供border-xxx-style四个样式,来分别设置四个边设置边框 大部分的浏览器中,边框的宽度和颜色都是有默认值,而边框的样式默认值都是none */ /* border-width: 10px border-color: red border-style: solid*/ /* border - 边框的简写样式,通过它可以同时设置四个边框的样式,宽度,颜色 - 而且没有任何的顺序要求 - border一指定就是同时指定四个边不能分别指定 border-top border-right border-bottom border-left 可以单独设置四个边的样式,规则和border一样,只不过它只对一个边生效 */ /*border: red solid 10px*/ /*border-left: red solid 10px*/内边距: 内边距(padding),指的是盒子的内容区与盒子边框之间的距离,一共有四个方向: padding-top padding-right padding-bottom padding-left 内边距会影响盒子的可见框的大小,元素的背景会延伸到内边距 盒子的大小由内容区、内边距和边框共同决定 盒子可见框的宽度 = border-left-width + padding-left + width + padding-right + border-right-width 盒子可见框的高度 = border-top-width + padding-top + height + padding-bottom + border-bottom-width */ /*设置上内边距*/ /*padding-top: 100px*/ /*设置右内边距*/ /*padding-right: 100px padding-bottom: 100px padding-left: 100px*/ /* 使用padding可以同时设置四个边框的样式,规则和border-width一致 */ /*padding: 100px*/ /*padding: 100px 200px*/ /*padding: 100px 200px 300px*/外边距: 外边距指的是当前盒子与其他盒子之间的距离,他不会影响可见框的大小,而是会影响到盒子的位置 盒子有四个方向的外边距: margin-top margin-right margin-bottom margin-left 由于页面中的元素都是靠左靠上摆放的,所以注意当我们设置上和左外边距时,会导致盒子自身的位置发生改变,而如果是设置右和下外边距会改变其他盒子的位置 */ /*设置上外边距,即盒子的上边框与其他盒子的距离*/ /*margin-top: 100px*/ /*左外边距*/ /*margin-left: 100px*/ /*设置右和下外边距*/ /*margin-right: 100px margin-bottom: 100px*/ /* 外边距也可以指定为一个负值,如果外边距设置的是负值,则元素会向反方向移动 */ /*margin-left: -100px margin-top: -100px margin-bottom: -100px*/ /*margin-bottom: -100px*/ /* margin还可以设置为auto,auto一般只设置给水平方向的margin 如果只指定,左外边距或右外边距的margin为auto则会将外边距设置为最大值 垂直方向外边距如果设置为auto,则外边距默认就是0 如果将left和right同时设置为auto,则会将两侧的外边距设置为相同的值,就可以使元素自动在父元素中居中 所以我们经常将左右外边距设置为auto,以使子元素在父元素中水平居中 */ /*margin-left: auto margin-right: auto*/ /*margin-top: auto*/ /* 外边距同样可以使用简写属性 margin,可以同时设置四个方向的外边距,规则和padding一样 */ /*margin: 10px 20px 30px 40px*/ 为上边的元素设置一个下外边距:margin-bottom: 100px 为下边的元素设置一个上外边距:margin-top: 100px垂直外边距的重叠 在网页中相邻的垂直方向的外边距会发生外边距的重叠 所谓的外边距重叠指兄弟元素之间的相邻外边距会取最大值而不是取和 如果父子元素的垂直外边距相邻了,则子元素的外边距会设置给父元素.box3{ width: 200px height: 100px background-color: yellow /*为box3设置一个上边框*/ /*border-top: 1px red solid*/ /*padding-top: 1px*/ padding-top: 100px}.box4{ width: 100px height: 100px background-color: yellowgreen /*为子元素设置一个上外边距,使子元素的位置下移*/ /*margin-top: 100px*/浏览器为了在页面中没有样式时,也可以有一个比较好的显示效果,所以为很多的元素都设置了一些默认的margin和padding,而它的这些默认样式,正常情况下我们是不需要使用的。 所以我们往往在编写样式之前需要将浏览器中的默认的margin和padding统统的去掉 格式: *{ margin: 0 padding: 0}

在网页前端设计过程中,少不了要使用边框,这样页面整体好看一些。边框通常分为两种,一种为实边框另一种为虚边框,实边框用得多一些,但有虚线或虚线边框点缀,网页会更漂亮,所以这两种边框都要使用。

在CSS中,设置边框用border属性,通常需要设置三个值,分别为:宽度、线条样式和颜色。把线条设置为实线或虚线主要设置线条样式,它主要有两个值,即:solid 和 dashed,前者表示实线,后者表示虚线。

一、CSS设置虚线

html代码:

CSS设置虚线

使用dashed

CSS样式:

.uldashed{border:1px solid #c22159width:300pxheight:60pxmargin:0padding:0line-height:26px}

.uldashed li{border-bottom:1px dashed #c22159list-style:none}

效果图:CSS设置虚线

使用dashed

以上CSS样式是给ul的每一行设置一条虚线,虚实结合比单用实线好看得多。在实际应用中,最后一行的虚线要隐藏掉,这样美观一些,只要再设置一个CSS样式把 border-bottom 设置为 none 即可。

二、CSS设置虚线边框

html代码:

CSS设置一虚线

使用dashed

CSS样式:

.uldashedborder{border:1px dashed #c22159width:300pxheight:60pxmargin:0padding:0line-height:26pxpadding-bottom:23px}

.uldashedborder li{border-bottom:1px solid #c22159list-style:none}

效果图:CSS设置一虚线

使用dashed

以上的CSS样式是把边框设置为虚线,把行的底部设置为实线,跟上边恰好相反,效果没有上边的好看。一般来说,虚线常常用于实线边框内。

三、CSS 长虚线边框

html代码:

长虚线边框

CSS样式:

.longDashedBorder{position:relativemargin:68px 0 0 130pxheight:44pxwidth:86pxdisplay:inline-blockborder:dashed 1px #b200fftransform:scale(4)overflow:hidden}

.text{position:relativemargin:-54px 0 0 -106pxfloat:leftheight:150pxwidth:300pxline-height:28pxdisplay:inline-blocktransform:scale(0.28)}

效果图:

ee96bd1776d77c7f7c565d5cc3bf1f47.png

以上长虚线边框用 Css 放大属性 scale 实现,这样虚线会增长但不会加宽;如果只增长 X 轴方向,可以用 scalex;如果只增长 Y 轴方向,可以用 scaley。使用 scale,除放大边框外,还放大其它元素,需要把它们调回来,比较麻烦。

四、CSS 虚线间距

html代码:

CSS样式:

.dashedSpace {

width:350px

height:1px

margin-top:10px

background-image:linear-gradient(to right, #b200ff 0%, #b200ff 50%, transparent 50%)

background-size:28px 1px

background-repeat:repeat-x

}

.linear {

background-image: linear-gradient(to right, #ccc 0%, #b200ff 50%, transparent 50%)

background-size:40px 1px

}

效果图:

03cc24f8ec77382a351b9b73a6a9f5eb.png

dashed 样式的虚线不能调间距,只能用渐变生成函数 linear-gradient(),to right 表示从左到右渐变,#ccc 0% 表示起点颜色和颜色百分比,#b200ff 50% 表示终点颜色和颜色百分比,transparent 50% 表示透明度。

控制文本与边框的距离,要使用css的内边距属性padding来实现。请看下方示例代码:

<!DOCTYPE html>

<html>

<head>

  <meta http-equiv="Content-Type" content="text/html charset=utf-8" />

  <title>angular demo</title>

</head>

<body>

<style type="text/css">

.box{width:150pxheight:150pxborder:1px solid #333padding:10pxfont-size:12px}

</style>

<div class="box">

这里是测试的文字,修改padding值就可以改变文字距离边框的距离了。

</div>

</body>

</html>

示例中设置的padding值为10px;文字距离边框的距离即为10px。可通过修改值来改变距离。实现效果如下图: