CSS控制边框和背景
定义简单边框
border属性(简写属性)
元素的边框(border)是围绕元素内容和内边距的一条或多条线
CSS border属性允许我们规定元素边框的样式、宽度和颜色。
定义和用法
border简写属性在一个声明设置所有的边框属性。
可以按顺序设置如下属性:
• border-width
• border-style
• border-color
如果不设置其中的某个值,也不会出问题,比如border: solid #ff0000; 也是允许的。
可能的值
值 | 描述 |
---|---|
border-width | 规定边框的宽度。参阅:border-width 中可能的值。 |
border-style | 规定边框的样式。参阅:border-style 中可能的值。 |
border-color | 规定边框的颜色。参阅:border-color 中可能的值。 |
inherit | 规定应该从父元素继承 border 属性的设置。 |
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.class1
{
border-width: 5px;
border-color: blue;
border-style: solid; <!-- 不设置style的话,边框是没有任何效果的 -->
}
</style>
</head>
<body>
<p class='class1'>CSS边框</a>
</body>
</html>
边框定义多种样式
我们可以为边框定义多种样式:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.class1
{
border-width: 5px;
border-color: blue;
border-style: solid dotted dashed double; <!-- 此处定义了四种样式:实线上边框、点线右边框、虚线下边框和双线左边框。这里的值采用了top-right-bottom-left顺序 -->
}
</style>
</head>
<body>
<p class='class1'>CSS边框</a>
</body>
</html>
定义单边样式
如果我们希望为元素框的某一边设置边框样式,而不是设置所有4个边的样式。或者我们希望某些边的样式和其它边的样式不同,可以使用如下单边边框样式属性:
因此这两种方法是等价的:
p {border-style: solid solid solid none;}
p {border-style: solid; border-left-style: none;}
注意:要使用第二种方法,必须把单边属性放在简写属性之后。因为如果把单边属性放在border-style之前,简写属性的值就会覆盖单边值none
同理也有单边宽度和单边颜色:
同样,单边设置也可以简写为border-top等。
设置顺序依然是width style color
圆角边框
border-radius属性设置圆角边框
border-radius: 20px/15px
<!-- 此例表示一个椭圆的圆角效果,同时设定了四个圆角 -->
<!-- 圆心离边框左右边距离20px,距离上下边15px -->
定义简单背景
background属性(简写属性)
定义和用法
background简写属性在一个声明中设置所有的背景属性。
可以设置如下属性:
- background-color
- background-position
- background-size
- background-repeat
- background-origin
- background-clip
- background-attachment
- background-image
如果不设置其中的某个值,也不会出现问题,比如background: #ff0000 url('smile.gif'); 也是允许的。
通常建议使用background属性,而不是分别使用单个属性,因为这个属性在较老的浏览器中能够得到更好的支持,而且需要键入的字母更少。
背景色
可以使用background属性为元素设置背景色。这个属性接受任何合法的颜色值。
<html>
<head>
<style type="text/css">
body {background-color: yellow}
h1 {background-color: #00ff00} <!-- 这条规则把元素的背景设置为绿色 -->
h2 {background-color: transparent}
p {background-color: rgb(250,0,255)}
p.no2 {background-color: gray; padding: 20px;} <!-- 如果您希望背景色从元素中的文本向外少有延伸,只需增加一些内边距 -->
</style>
</head>
<body>
<h1>这是标题 1</h1>
<h2>这是标题 2</h2>
<p>这是段落</p>
<p class="no2">这个段落设置了内边距。</p>
</body>
</html>
可以为所有元素设置背景色,这包括body一直到em和a等行内元素。
background-color不能继承,其默认值是transparent。transparent是“透明”的意思。也就是说,如果一个元素没有指定背景色,那么背景就是透明的,这样其祖先元素的背景才能可见。
背景图像
要把图像放入背景,需要使用background-image属性。
background-image属性的默认值是none,表示背景上没有放置任何图像。
如果需要设置一个图像背景,必须为这个属性设置一个URL值:
<html>
<head>
<style type="text/css">
p.flower {background-image: url(http://www.w3school.com.cn/i/eg_bg_03.gif); padding: 20px;}
p.small {width: 506px; height: 284px; background-image:url(http://a.hiphotos.baidu.com/image/h%3D300/sign=79bce699c5177f3e0f34fa0d40ce3bb9/4afbfbedab64034fd084b629a3c379310a551d57.jpg); }
a.radio {background-image: url(http://www.w3school.com.cn/i/eg_bg_07.gif); padding: 20px;}
</style>
</head>
<body>
<p class="flower">我是一个有花纹背景的段落。<a href="#" class="radio">我是一个有放射性背景的链接。</a></p>
<p><b>注释:</b>为了清晰地显示出段落和链接的背景图像,我们为它们设置了少许内边距。</p><br /><br />
<p class='small'>设置width和height使图片能显示完整</p>
</body>
</html>
背景重复
如果需要在页面上对背景图像进行平铺,可以使用background-repeat属性。
属性值 repeat 导致图像在水平垂直方向上都平铺,就像以往背景图像的通常做法一样。repeat-x 和 repeat-y 分别导致图像只在水平或垂直方向上重复,no-repeat 则不允许图像在任何方向上平铺。
默认的,背景图像将从一个元素的左上角开始。
<html>
<head>
<style type="text/css">
.small {background-image:url(http://a.hiphotos.baidu.com/image/h%3D300/sign=79bce699c5177f3e0f34fa0d40ce3bb9/4afbfbedab64034fd084b629a3c379310a551d57.jpg); }
</style>
</head>
<body class='small'>
</body>
</html>
如果只想让图片一次都不重复,要设置no-repeat属性值
<html>
<head>
<style type="text/css">
.small {background-image: url(http://a.hiphotos.baidu.com/image/h%3D300/sign=79bce699c5177f3e0f34fa0d40ce3bb9/4afbfbedab64034fd084b629a3c379310a551d57.jpg);
background-repeat: no-repeat;
}
</style>
</head>
<body class='small'>
</body>
</html>
背景定位
可以利用background-position属性改变图像在背景中的位置。
<!-- 在 body 元素中将一个背景图像居中放置 -->
body
{
background-image:url('/i/eg_bg_03.gif');
background-repeat:no-repeat;
background-position:center;
}
为 background-position 属性提供值有很多方法。首先,可以使用一些关键字:top、bottom、left、right 和 center。通常,这些关键字会成对出现,不过也不总是这样。还可以使用长度值,如 100px 或 5cm,最后也可以使用百分数值。不同类型的值对于背景图像的放置稍有差异。
关键字
图像放置关键字最容易理解,其作用如其名称所表明的。例如,top right 使图像放置在元素内边距区的右上角。
根据规范,位置关键字可以按任何顺序出现,只要保证不超过两个关键字 - 一个对应水平方向,另一个对应垂直方向。
如果只出现一个关键字,则认为另一个关键字是 center。
所以,如果希望每个段落的中部上方出现一个图像,只需声明如下:
p
{
background-image:url('bgimg.gif');
background-repeat:no-repeat;
background-position:top;
}
下面是等价的位置关键字:
单一关键字 | 等价的关键字 |
---|---|
center | center center |
top | top center 或 center top |
bottom | bottom center 或 center bottom |
right | right center 或 center right |
left | left center 或 center left |
百分数值
百分数值的表现方式更为复杂。假设你希望用百分数值将图像在其元素中居中,这很容易:
body
{
background-image:url('/i/eg_bg_03.gif');
background-repeat:no-repeat;
background-position:50% 50%;
}
这会导致图像适当放置,其中心与其元素的中心对齐。换句话说,百分数值同时应用于元素和图像。也就是说,图像中描述为 50% 50% 的点(中心点)与元素中描述为 50% 50% 的点(中心点)对齐。
如果图像位于 0% 0%,其左上角将放在元素内边距区的左上角。如果图像位置是 100% 100%,会使图像的右下角放在右边距的右下角。
因此,如果你想把一个图像放在水平方向 2/3、垂直方向 1/3 处,可以这样声明:
body
{
background-image:url('/i/eg_bg_03.gif');
background-repeat:no-repeat;
background-position:66% 33%;
}
如果只提供一个百分数值,所提供的这个值将用作水平值,垂直值将假设为 50%。这一点与关键字类似。
background-position 的默认值是 0% 0%,在功能上相当于 top left。这就解释了背景图像为什么总是从元素内边距区的左上角开始平铺,除非您设置了不同的位置值。
长度值
长度值解释的是元素内边距区左上角的偏移。偏移点是图像的左上角。
比如,如果设置值为 50px 100px,图像的左上角将在元素内边距区左上角向右 50 像素、向下 100 像素的位置上:
body
{
background-image:url('/i/eg_bg_03.gif');
background-repeat:no-repeat;
background-position:50px 100px;
}
注意,这一点与百分数值不同,因为偏移只是从一个左上角到另一个左上角。也就是说,图像的左上角与 background-position 声明中的指定的点对齐。
背景关联
如果文档比较长,那么当文档向下滚动时,背景图像也会随之滚动。当文档滚动到超过图像的位置时,图像就会消失。
我们可以通过background-attachment属性放置这种滚动。通过这个属性,可以声明图像相对于可视区域是固定的(fixed),因此不会受到滚动的影响:
<!-- 图像始终存在于视野内 -->
body
{
background-image:url(/i/eg_bg_02.gif);
background-repeat:no-repeat;
background-attachment:fixed
}
background-attachment属性的默认值是scroll,也就是说,在默认的情况下,背景会随文档滚动。(图像会消失在视野内)
上一篇: 怎样让你的大姨妈准时驾到 牢记这几个方面
下一篇: Android4.4属性系统-属性设置
推荐阅读
-
CSS3对背景图片的裁剪及尺寸和位置的设定方法
-
CSS控制前台样式在360和chrome的兼容问题,跪求高手帮忙,在线等,,,,,,,_html/css_WEB-ITnose
-
css设置背景图片和背景颜色都不显示_html/css_WEB-ITnose
-
css3 边框、背景、文本效果的实现代码
-
CSS3实现多背景模拟动态边框的效果
-
css3 边框、背景、文本效果的实现代码
-
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
-
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
-
css Hspace 和vspace的图片控制实例
-
CSS3圆角边框和边界图片效果实例