CSS 基础教程2—CSS3元素属性的升级

CSS 基础教程2—CSS3元素属性的升级

简介

  在 CSS 中,对背景图片的定位我们使用了 background-position 来调整,不够直观,并且,图片的大小是根据图片的原像素尺寸大小决定的,这些不便在 CSS3 中都有了改善。 本节中,我们将对 CSS3 中作了升级调整的背景和边框元素进行简单的介绍。

  知识点

  • 背景
  • 边框

背景

  在 CSS3 中,背景的样式作了一些升级调整,让我们可以更好的控制背景元素的样式。这里主要介绍以下几个调整:

  • background-size
  • background-origin
  • background-clip

background-size
  background-size 指定背景图像的大小,取代了以前背景图像的大小由实际大小决定。背景图像的大小可以是像素或是百分比大小。
  background 的语法为:

background-size:length|percentage|cover|contain;
  • length:设置背景的高度和宽度,如 background-size:100px 200px;。第一个值为宽度,第二个值为高度。如果只设置一个值,则第二个值会被设置为 auto,这时候的第一个值为宽度,第二个值虽然设置为 auto,但实际上与第一个值相同。
  • percentage:以父元素的百分比来设置背景图像的宽度和高度,如 background-size:50% 50%;。第一个值设置宽度,第二个值设置高度。同 length 的用法,如果只给出一个值,那么第二个值会被设置为 auto。
  • cover:把背景图像扩展到可以完全覆盖背景区域为止,图片的某些部分可能会无法显示。background-size:cover;
  • contain:使背景图片的高度和宽度完全适应内容区域。background-size:contain;

例子:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
	div{
	   border:2px solid;
	   margin:50px auto;
	   width:200px;
	   height:200px;
	   padding:50px;
	   background-image:url('Baymax.png');
	   background-size:100% 100%;
	   /* 如需要查看其它效果,可将注释中的内容替换上面的background-size */
           /* background-size:100px 200px; */
           /* background-size:50% 50%; */
           /* background-size:cover; */
           /* background-size:contain; */
	   background-repeat:no-repeat;
	}
     </style>
</head>

<body>
     <div></div>
</body>
</html>

效果图:
在这里插入图片描述
  请自行调整 background-size 的值,观察背景图片的变化。

background-origin
  background-origin 字面理解是背景图片起点的意思,它规定 background-position 属性相对于什么位置来定位。它有三个值:

  • border-box :背景图片从盒模型的 border-box 左上角开始绘制,即背景图片相对于边框和来定位。
  • padding-box :(默认)背景图片从盒模型的 padding-box 左上角开始绘制,即背景图片相对于内边距框来定位。
  • cotent-box :背景图片从盒模型的 content-box 左上角开始绘制,即背景图片相对于内容框来定位。

  我们用上一个例子中的代码来演示 background-origin 不同值的效果,为了对比背景图片的不同的起始位置,我们使用图片的原尺寸,即删除 background-size :

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
	div{
	   border:2px solid;
	   margin:50px auto;
	   width:200px;
	   height:200px;
	   padding:50px;
	   background-image:url('Baymax.png');
	   background-repeat:no-repeat;
	   background-origin: border-box;
	}
     </style>
</head>

<body>
     <div></div>
</body>
</html>

在浏览器中运行效果图为:
在这里插入图片描述
更改代码:

background-origin: content-box;

在浏览器中运行效果图为:
在这里插入图片描述
  我们很容易可以发现,background-origin 设置为 content-box 和 border-box 的区别,一个是从盒模型的 content-box 的左上角开始绘制,一个是从盒模型 border-box 左上角开始绘制。

background-clip
  background-clip 与 background-origin 可以取到的值相同,它们的功能大致相同。但是两者存在一些细微的差别。当它们的值都为 border-box 时,虽然都是从盒模型的边框左上角开始绘制背景图片,但是 background-clip 绘制出来的背景图片不会覆盖左方和上方的边框,而 background-origin 绘制出来的背景图片则会覆盖左方和上方的边框。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
	div{
	   border:2px solid;
	   margin:50px auto;
	   width:200px;
	   height:200px;
	   padding:50px;
	   background-image:url('Baymax.png');
	   background-repeat:no-repeat;
	   background-clip: border-box;
	}
     </style>
</head>

<body>
     <div></div>
</body>
</html>

在浏览器中运行效果图为:
在这里插入图片描述

边框

  CSS3 中,针对边框的样式作了一些升级调整,这里主要讲解两个属性:

  • border-radius
  • border-image

border-radius
  在 CSS2 中添加边框圆角是一件很困难的事情,我们需要在每个角落使用不同的图像。但是,在 CSS3 中,我们只需要使用属性 border-radius 就可以创建圆角。

border-radius:1-4 length|% / 1-4 length|%;

例子:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
	div{
	   border:2px solid;
	   margin:50px auto;
	   width:200px;
	   height:200px;
	   padding:50px;
	   border-radius:20px;
	   background-image:url('Baymax.png');
	   background-repeat:no-repeat;
	   background-clip: border-box;
	}
     </style>
</head>

<body>
     <div><p>border-radius</p></div>
</body>
</html>

在浏览器中运行效果图为:
在这里插入图片描述
  border-radius 属性其实是 border-top-left-radius、border-top-right-radius、border-bottom-right-radius、border-bottom-left-radius 四个属性的简写模式,四个数值的书写顺序是:左上角、右上角、右下角、左下角。

  • 当 border-radius 只设置一个值,即将该值应用到元素的四个角上。
  • 当 border-radius 设置两个或三个值时,按照对角线相同原则,如:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
	div{
	   border:2px solid;
	   margin:50px auto;
	   width:200px;
	   height:200px;
	   padding:50px;
	   /*省略了左下和右下,按照对角线相同的原则,
	   应为 20px 50px 20px 50px*/
	   border-radius:20px 50px;
	   background-image:url('Baymax.png');
	   background-repeat:no-repeat;
	   background-clip: border-box;
	}
     </style>
</head>

<body>
     <div></div>
</body>
</html>

在浏览器中运行效果图为:
在这里插入图片描述

  • border-radius 按照语法的完整写法其实是 border-radius:10px 10px 10px 10px / 10px 10px 10px 10px; ,前面四个表示圆角的水平半径,后面四个表示圆角的垂直半径。
      除了为边框添加圆角,你还可以将 border-radius 属性运用到图片上来制作你的圆角图片。

border-image
  使用属性 border-image ,我们可以使用图片来创建一个边框。语法为:

border-image: source(url) slice width outset repeat;
  • source:所使用图片的路径。
  • slice:图片边框向内偏移。
  • width:图片边框宽度。
  • outset:边框图像区域超出边框的量。
  • repeat:图像边框是否应该平铺(repeat)、铺满(round)或拉伸(stretch)。

例子:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
	div{
	   border:40px solid;
	   margin:50px auto;
	   width:200px;
	   height:200px;
	   padding:50px;
	   border-image:url('Baymax.png') 30 30 stretch;
	}
     </style>
</head>

<body>
     <div></div>
</body>
</html>

在浏览器中运行效果图为:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值