CSS基础(三)day5

1. background

(1)背景位置(background-position)

background-position属性设置背景图像的起始位置

语法:

/*取值有left、right、top、bottom、center,如果仅指定一个关键字,其他值将会是"center"*/
background-position: center; 
background-position: 30% 20%; 
background-position: 50px 100px;
/* 1.背景位置-固定值px 第一个值表示水平位置-图像往右移动 第二个值表示垂直位置-值增大图片往下 */
/* 这两个值可以是负值 */
background-position: 20px 20px;

/* 2.背景位置-百分比 第一个值表示水平位置-图像往右移动 第二个值表示垂直位置-值增大图片往下 */
background-position: 10% 20%;

/* 背景位置百分比-图像左上角位置  (盒子宽度-图片宽度)*百分比,(盒子高度-图片高度)*百分比 */

/* 3.背景位置-关键词 水平取值:left center right 垂直取值 top center bottom  这种方式设置可以交换位置 

如果省略一个值,就默认另外一个值为center*/

(2)背景附着(background-attachment)

background-attachment设置背景图像是否固定或者随着页面的其余部分滚动。

/* 默认   滚动 默认值 背景图相对于盒子固定*/

            background-attachment: scroll;

 /*         固定 背景图相对于浏览器的窗口固定 */

            background-attachment: fixed;

(3)多背景(CSS3)

以逗号分隔可以设置多背景,可用于自适应布局。

不同的背景图像用逗号隔开,并且图像会彼此堆叠,其中的第一幅图像最靠近观看者。

background-image:url(图片路径), url(图片路径); /*使用多张图片*/
background-position: left top, right bottom;
background-repeat: no-repeat, repeat;

示例:

<div>
	<h1>悯农</h1>
	<p>锄禾日当午</p>
	<p>汗滴禾下土</p>
	<p>谁知盘中餐</p>
	<p>粒粒皆辛苦</p>	
</div>



效果图 :

(4)精灵图(雪碧图)

为了节省网络资源,通常网页上小图标和图片都合成在一张图片上,到使用的时候再切图

查到目标图标大小,设置宽高,通过position调整位置,找到目标图标

假如我们的组件的宽高分别为16px,图片宽高为200px,我们发现如果将图片作为组件的背景图片,将会从图片0,0左边点开始显示,只能显示图片的16px,因为组件只有这么大,多余的图片就被舍弃了。如下图片当图片原点和组件原点重叠的时候,组件只能显示图片的16px大小

 

(5)凹凸文字


 

2. 盒子模型(CSS重点)

其实,CSS就三大模块:盒子模型、浮动、定位。

所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成

(1)看透网页布局的本质

网页布局中,我们是如何把里面的文字、图片按照美工给我们的效果图排列的整齐有序呢?

看透网页布局的本质:把网页元素比如文字、图片等,放入盒子里面,然后利用CSS摆放盒子的过程,就是网页布局。

(2)盒子模型(Box Model)

 所有的文档元素(标签)都会生成一个矩形框,我们称为元素框(element box),它描述了一个文档元素在网页布局中所占的位置大小。因此,每个盒子除了有自己的大小和位置外,还会影响其他盒子的大小和位置。

 

(3)盒子边框(border)

边框就是元素最外层的包装。CSS边框属性允许你指定一个元素边框的样式和颜色。

语法:

border: border-width  border-style  border-color
  • border-width:用于指定边框的粗细。

  • border-style:用于定义边框的样式。

  • border-color:用于设置边框的颜色。

盒子边框总结表

设置内容样式属性常用属性值
上边框border-top-style: 样式; border-top-width: 宽度; border-top-color: 颜色; border-top: 宽度 样式 颜色;
右边框border-right-style: 样式; border-right-width: 宽度; border-right-color: 颜色; border-right: 宽度 样式 颜色;
下边框border-bottom-style: 样式; border-bottom-width: 宽度; border-bottom-color: 颜色; border-bottom: 宽度 样式 颜色;
左边框border-left-style: 样式; border-left-width: 宽度; border-left-color: 颜色; border-left: 宽度 样式 颜色;
样式综合设置border-style:上边 [右边 下边 左边]none无(默认)、solid(单实线) dashed(虚线)、dotted(点线)、 double(双实线)
宽度综合设置border-width:上边 [右边 下边 左边]像素值 使用关键字thick、medium(默认值)、 thin
颜色综合设置border-color:上边 [右边 下边 左边]颜色名称、#十六进制、rgb(r,g,b)、 rgb(r%,g%,b%)
边框综合设置border: 四边宽度 四边样式 四边颜色

还可以设置边框的颜色为"transparent"。

注意: border-color单独使用是不起作用的,必须得先使用border-style来设置边框样式。

border-style属性可以有1-4个值:

  • border-style:dotted solid double dashed;

    • 上边框是 dotted

    • 右边框是 solid

    • 下边框是 double

    • 左边框是 dashed

  • border-style:dotted solid double;

    • 上边框是 dotted

    • 左、右边框是 solid

    • 下边框是 double

  • border-style:dotted solid;

    • 上、下边框是 dotted

    • 右、左边框是 solid

  • border-style:dotted;

    • 四面边框是 dotted

示例:

<p>设置盒子四个边框的颜色</p>
p {
    border-style:solid;
    border-color:#ff0000 #00ff00 #0000ff rgb(250,0,255);
}

表格的细线边框:

以前学过的HTML表格的边框很粗,这里只需要CSS一句话就可以美观起来。

table {
    border-collapse: collapse;  /*表示边框合并在一起*/
}

示例:

 用盒子边框写三角形

<style>
        div{
            width: 0;
            border: 100px solid blue;
            border-color: aqua pink burlywood blueviolet;
        }
    </style>
</head>
<body>
    <div></div>
</body>

效果图:

 

圆角边框(CSS3):

使用 CSS3 border-radius 属性,你可以给任何元素制作 "圆角"。radius 半径(距离)

语法格式:

border-radius: 左上角  右上角  右下角  左下角;    /*4个值*/
border-radius: 左上角  右上/左下  右下角;         /*3个值*/
border-radius: 左上/右下  右上/左下;             /*2个值*/
border-radius: 四个圆角值相同;                   /*1个值*/

示例:

#rcorners {
    border-radius: 5px 50px;
设置左上右下5px 右上左下50px
    background: #8AC007;
    width: 200px;
    height: 150px; 
} 

(4)内边距(padding)

padding属性用于设置内边距。是指边框与内容之间的距离。

padding-top: 上内边距

padding-right: 右内边距

padding-bottom: 下内边距

padding-left: 左内边距

padding: 上右下左内边距

注意:属性后面的数值可变,表示不同的含义。

值的个数表达意思
1个值padding: 四周内边距
2个值padding: 上下、左右内边距
3个值padding: 上、左右、下内边距
4个值padding: 上、下、左、右内边距

(5)外边距(margin)

margin属性用于设置外边距。设置外边距会在元素之间创建“空白”,这段空白通常不能放置其他内容。

margin-top: 上外边距

margin-right: 右外边距

margin-bottom: 下外边距

margin-left: 左外边距

margin: 上 右 下 左

注意:行内元素可以设置水平方向的内外边距,但不能设置垂直方向的内外边距。

外边距实现盒子居中:

可以让一个盒子实现水平居中,需要满足两个条件:

1、必须是块级元素

2、盒子必须指定了宽度

只需要给左右的外边距都设置为auto,就可以使块级元素水平居中。

实际工作中常用这种方式来进行网页布局,示例如下:

.header {
    width: 960px;
      margin: 0 auto;    /*表示上下外边距为0,左右水平居中*/
}


清除元素的默认内外边距:

为了更方便地控制网页中的元素,制作网页时,可以使用如下代码清除元素默认的内外边距:

* {
    padding: 0;    /*清除内边距*/
      margin: 0;    /*清除外边距*/
}

需要注意的是:行内元素只有左右内外边距,是没有上下内外边距的。

文字水平居中和盒子水平居中:

  1. 盒子居中使用margin,给定左右边距为auto即可。

  2. 文字居中使用:text-align: center;

  3. 文字垂直居中:单行文本 line-height, 多行文本padding

示例:

 

(6)外边距合并

使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。

相邻块元素垂直外边距的合并

当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直距离不是margin-bottom与margin-top之和,而是取两者中的较大者。这种现象被称为相邻块元素垂直外边距的合并(也称为外边距塌陷)。

嵌套块元素垂直外边距的合并

对于两个嵌套关系的块元素,如果父元素没有上内边距及上边框,则父元素的上外边距会与子元素的上外边距合并,合并后的外边距为两者中的较大者。即使父元素的上外边距为0,也会发生合并。

解决方案

1.可以为父元素定义1像素的上边框border或上内边距padding

2.可以为父元素添加overflow: hidden;

(7)盒子模型布局的稳定性

开始学习盒子模型,最大的问题就是分不清内外边距的使用,什么情况下使用内边距,什么情况下使用外边距?

建议如下:

优先使用宽度(width),其次使用内边距(padding),最后使用外边距(margin)
width > padding > margin

原因:

1.margin会有外边距合并,还有在ie6下margin容易出bug。

2.padding会影响盒子大小,需要进行加减计算。box-sizing:border-box;

3.width没有问题。我们经常用宽度剩余法 、 高度剩余法来做

补充:

input 去除已有边框 

<style>
        input {
            width: 200px;
            height: 40px;
            background-color: red;
            /* 去除input已有边框 */
            border: none;
            /* 去除input已有外扩线 */
            outline: none;
            border: 5px solid blueviolet;
            border-radius: 10px;
        }
    </style>
</head>
<body>
    <input type="text" >
</body>

效果图:

未完... 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值