CSS (3) | 盒子

6 篇文章 0 订阅

目录

1 盒子模型

1.1 看透页面布局本质

1.2 盒子模型(box model)组成

1.3 边框(border)

1.3.1 width

1.3.2 border-style

1.3.3 边框简写

1.4 表格的细线边框

1.5 边框会影响盒子实际大小

1.6 内边距(padding)

案例:新浪导航栏

1.7 外边距(margin)

1.8 外边距合并

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

 1.8.2 嵌套块元素垂直外边距的塌陷

1.9 清除内外边距

1.10 行内元素的margin和padding无效情况

2 ps基本操作

3 综合案例:

3.1 产品模块

3.2 案例模块

4 圆角边框

5 盒子阴影(重点)

6 文字阴影


1 盒子模型

        页面布局要学习三大核心,盒子模型、浮动和定位,学习好盒子模型能非常好的帮我们布局页面。 

1.1 看透页面布局本质

页面布局过程:

  1. 先准备好相关的网页元素,网页元素基本都是盒子box。
  2. 利用css设置好盒子样式,然后摆到相应位置。
  3. 往盒子里面装内容。

网页布局的核心内容,就是利用CSS摆盒子。

1.2 盒子模型(box model)组成

所谓盒子模型:就是把HTML页面中的元素看作是一个矩形盒子,也就是一个盛放内容的容器。

CSS盒子模型本质上是一个盒子,封装周围的HTML元素,它包括:边框、外边距、内边距和实际内容。

1.3 边框(border)

边框由三部分组成:粗细(px) 样式 颜色

1.3.1 width

语法:

border: border-width || border-style || border-color


1.3.2 border-style

语法:
border-style : none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset
 
参数:
none :  无边框。与任何指定的border-width值无关
hidden :  隐藏边框。IE不支持
dotted :  在MAC平台上IE4+与WINDOWS和UNIX平台上IE5.5+为点线。否则为实线
dashed :  在MAC平台上IE4+与WINDOWS和UNIX平台上IE5.5+为虚线。否则为实线
solid :  实线边框
double :  双线边框。两条单线与其间隔的和等于指定的border-width
groove :  根据border-color的值画3D凹槽
ridge :  根据border-color的值画菱形边框
inset :  根据border-color的值画3D凹边
outset :  根据border-color的值画3D凸边
 
说明:
如果提供全部四个参数值,将按上-右-下-左的顺序作用于四个边框。
如果只提供一个,将用于全部的四条边。
如果提供两个,第一个用于上-下,第二个用于左-右。
如果提供三个,第一个用于上,第二个用于左-右,第三个用于下。
要使用该属性,必须先设定对象的heightwidth属性,或者设定position属性为absolute。


1.3.3 边框简写

border:1px solid red;
/*无先后顺序*/

边框分开写法:

border-top:1px solid red;
border-bottom:1px solid green;
border-left:1px solid yellow;
border-right:1px solid blue;

课堂要求:请给一个200*200的盒子,设置上边框为红色,其余边框为蓝色(提示:一定要注意边框的层叠性)

1.4 表格的细线边框

border-collapse(合并)属性控制浏览器绘制表格边框的方式,他控制相邻单元格的边框。

注:边框样式不能继承。

border-collapse:collapse
/*表示相邻边框合并*/
边框重叠后会变粗
collapse效果

问题:非表格盒子border如何合并?

-为盒子添加右下/左上外边距

   border: 1px solid #f4f4f4;
    /*边框合并*/
   margin:0 0 -1px -1px;

1.5 边框会影响盒子实际大小

因此两种解决方案:

1、测盒子大小时不带边框。

2、带边框测则设置样式时去掉边框大小。

3、(css3盒模型)
操作:给盒子设置属性 box-sizing : border-box ; 即可
优点:浏览器会自动计算多余大小,自动在内容中减去
 

1.6 内边距(padding)

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

div {
    padding-top:20px;
}

padding简写属性可以有一到四个值。

值的个数表达意思
padding:5px;上下左右
padding:5px;10px;上下;左右
padding:5px;10px;15px;上;左右;下
padding:5px;10px;15px;20px;上;右;下;左(顺时针)

注意:

①padding同样影响着盒子实际大小,也就是说,如果盒子已经有了高度和宽度,此时再指定内边距,会撑大盒子。       

当子级宽度大于父级时,也会撑出
 

②如果盒子本身没有指定宽度,则此时padding不会撑开盒子大小。


案例:新浪导航栏

        div {
            border-top: 3px solid #ff8500;
            border-bottom: 1px solid #edeef0;
            height: 37px;
            line-height: 37px;
            background: #fcfcfc;
        }

        a {
            display: inline-block;
            padding: 0px 30px;
            text-decoration: none;
            color: #4c4c4c;
        }

        a:hover {
            color: #ff8500;
            background-color: gray;
        }
<body>
    <div>
        <a href="#">设为首页</a>
        <a href="#">手机新浪网</a>
        <a href="#">移动客户端</a>
        <a href="#">微博</a>
        <a href="#">博客</a>
        <a href="#">关注我</a>
    </div>
</body>

1.7 外边距(margin)

margin属性用于设置外边距,即控制盒子与盒子之间的距离。

margin简写意义与padding一致。

margin-left:10px;
  • 外边距可以让块级盒子水平居中,但必须满足两个条件。
    • 盒子必须指定了宽度。
    • 盒子左右外边距都设置为anto。
    • 常见写法:
      • margin-left:auto;margin-right:auto;
      • margin:anto;
      • margin:0 auto;   
    • 这一方法让块级元素水平居中,而行内元素或者行内块元素水平居中给其父元素添加text-align:center即可。

        div {
            margin: auto;
            width: 400px;

        }

        img {
            width: 700px;
        }
    <div>
        <img src="碎冰蓝.jpg" alt="">
    </div>

1.8 外边距合并

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

主要有两种情况:

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

当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则它们之间的垂直间距不是二者之和。

取两值中较大者为边距的现象为相邻元素垂直外边距的合并

解决方案:尽量只给一个盒子添加margin值

 1.8.2 嵌套块元素垂直外边距的塌陷

对于两个嵌套(父子)关系的块元素,父子元素同时有上外边距,此时父元素会塌陷较大的外边距值。(儿子把父拽下来了)

            

 解决方案:

  1. 给父元素设置border-top 或者 padding-top(分隔父子元素的margin-top)

     

        

2、可以为父元素添加overflow:hidden(推荐,不会撑大盒子)。

3. 转换成行内块元素
4. 浮动、固定,绝对定位的盒子不会有塌陷问题。 

1.9 清除内外边距

        /* 这句话也是css的第一行代码 */
        /* *为通配符 */

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

注意:行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。但是转换为块级和行内块元素就可以了。

1.10 行内元素的margin和padding无效情况

➢ 场景:给行内元素设置margin和padding时

➢ 结果:
1. 水平方向的margin和padding布局中有效!
2. 垂直方向的margin和padding布局中无效!

2 ps基本操作

  • 文件→打开:打开测量图片;
  • Ctrl+R:打开标尺(或者视图中);
  • 右击标尺,单位改为像素;
  • Ctrl+(+/-)可以放大/缩小视图;
  • 按住空格键,鼠标可以变成小手,拖动ps视图;
  • 用选区拖动,可以测量大小。

3 综合案例:

3.1 产品模块

案例问题总结:

1、布局为何不都用div?

标签都是有语义的,合理的地方用合理的标签,如产品标题就用h标签,大量文字段落就用p标签。

2、为什么用那么多类名?

类名就是给每个盒子起一个名字,可以更好的找到这个盒子,选取盒子更容易,后期维护也更方便。

3、到底用margin还是padding?

多数情况二者可混用,各有优缺,根据实际需要判断(margin不易撑大盒子)。

3.2 案例模块

(45′)

案例问题总结:

1、列表圆点怎么去除?

list-style:none;则是表示不使用项目符号的意思,但只能用于有序列表和无序列表。

2、如何实现多行同时编辑?

shift+alt:多行同时编辑.

4 圆角边框

border-radius属性用于设置元素的外边框圆角。

/* border-radius:length; */
border-radius:10px;

边框圆角的常见应用

➢ 画一个正圆:

1. 盒子必须是正方形

2. 设置边框圆角为盒子宽高的一半 → border-radius:50%

➢画一个椭圆:

1. 盒子要求是长方形

2. 设置 → border-radius:盒子高度的一半(%)

➢ 胶囊按钮:

1. 盒子要求是长方形

2. 设置 → border-radius:盒子高度的一半(px)

注意:

1、参数值可以为数值或百分比的形式。

      百分比可以解决边长无法整除的缺陷。

2、简写时

  • 写两个值,代表左上+右下和右上+左下(对角)。
  • 写三个值,代表左上、右上+左下、右下。 

  • 写四个值,代表左上角、右上角、右下角、左下角(顺时针)。

3、还可以分开写:border-top-right-radius等。

注意:

length值越大曲度越大。


5 盒子阴影(重点)

box-shadow属性可以为盒子添加阴影。

box-shadow:h-shadow v-shadow blur spread color inset
描述
h-shadow必须。水平阴影的位置,允许负值
v-shadow必须。垂直阴影的距离,允许负值
blur可选。模糊距离
spread可选。阴影的尺寸
color可选。阴影的颜色。参考css颜色值
inset可选。将外部阴影(outset)改为内部阴影

6 文字阴影

text-shadow可将阴影运用于文字(属性值同盒子阴影)。 

text-shadow:h-shadow v-shadow blur color;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值