本文介绍: 初学者CSS3入门详细

八、CSS盒子模型(Box Model)

        所有的HTML元素可以看作是盒子,在CSS中,“Box Model“这一术语用来设计布局使用;CSS盒模型本质上是一个盒子,封装周围所有的HTML元素,它包括:

外边距(margin)、边框border),内边距(padding)、和实际内容content

        

不同部分说明

拓展:元素宽度/高度计算

    总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边

    总元素高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距

九、弹性盒子模型(Flex Box)

定义:        

        弹性盒子是CSS3的一种新的布局模式;是一种当页面需要适应不同屏幕大小以及设备类型时确保元素拥有恰当的行为布局方式引入弹性模型的目的是提供一种更加有效的方式来对一个器中的子元素进行排列对齐分配空白空间

        弹性盒子由弹性容器(Flex container)和弹性元素(Flex item)组成。弹性容器通过设置 display 属性值为 flexinlineflex将其定义为弹性容器。弹性容器包含一个多个弹性子元素

        注意:弹性容器外及弹性子元素内是正常渲染的,弹性盒子只定义了弹性子元素如何在弹性容器内布局。

代码展示

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8"&gt;
    <meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    <title&gt;Document</title&gt;
    <style>
        .container{
            width: 500px;
            height: 500px;
            background-color: #555;
            display: flex;
        }
        .box1{
            width: 100px;
            height: 100px;
            background-color: red;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: blue;
        }
        .box3{
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
    </div>
</body>

</html>

效果呈现

 flex-direction

        flex-direction 属性指定弹性子元素在父容器中位置

        语法

flex-direction: row | rowreverse | column | columnreverse

 flex-direction的值有:

justifycontent

        内容对齐justifycontent)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐。

        语法

justifycontent: flex-start | flex-end | center | space-between | spacearound

        各个解析:

alignitems

        align-items 设置检索弹性盒子元素在侧轴(纵轴)方向上的对齐方式

        语法

alignitems: flex-start | flex-end | center | baseline | stretch

        各个解析:

flex-wrap

        flex-wrap 属性用于指定弹性盒子的子元素换行方式

        语法:

flex-wrap: nowrap|wrap|wrap-reverse|initial|inherit;

        各个解析

aligncontent

        align-content 属性用于修改 flex-wrap 属性行为。类似于 align-items, 但它不是设置弹性子元素的对齐,而是设置各个行的对齐。

        语法:

align-content: flex-start | flex-end | center | space-between | spacearound | stretch

        各个解析:

十、文档

        文档流是文档中可显示对象在排列时所占用的位置/空间。

        标准里面限制非常多,导致很多页面效果无法实现

例如

  1. 高矮不齐,底边对齐
  2. 空白折叠现象
    1. 无论多少空格换行、tap、都会折叠一个空格
    2. 如果我们想让img标签之间没有空袭,必须紧密链接

问题呈现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>我中间有         好多空格</p>
    <img src="../../resoure/image/1.jpg" alt="">
    <img src="../../resoure/image/1.jpg" alt="">
</body>
</html>

代码显示结果 

解决上述问题办法

        办法是移民、脱离标准

  1. 浮动
  2. 绝对定位
  3. 固定定位

十一、浮动清除浮动

1、浮动定义

        float属性定义元素在哪个方向浮动,任何元素都可以浮动

2、float属性值

描述
left 元素向左浮动。
right 元素向右浮动。
none 默认值。元素不浮动,并会显示在其在文本出现的位置。
inherit 规定应该从父元素继承 float 属性的值。

3、浮动副作用

        当元素设置 float浮动后,该元素就会脱离文档流向左向右浮动

        1、浮动元素会造成父级元素高度塌陷

        2、后续元素会受到影响

4、清除浮动定义

        元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用 clear 属性。

5、clear属性值

描述
left 在左侧不允许浮动元素。
right 右侧不允许浮动元素。
both 在左右两侧均不允许浮动元素。
none 默认值。允许浮动元素出现在两侧。
inherit 规定应该从父元素继承 clear 属性的值。

6、解决作用方案

  1. 父元素设置高度
  2. 影响的元素增加clear属性
  3. overflow清除浮动
  4. 对象方式 

        伪对象

        如果有父级塌陷,并且同级元素也受到了影响可以为父标签添加伪类after设置空的内容,并且使用clear:both;

.container::after{
    content:"";
    display:block;
    clear:both;
}

十二、定位

1、定义

        position 属性指定了元素的定位类型

2、position属性值

这三者当中绝对定位和固定定位会脱离文档流,设置定位以后,可以使用四个方向进行调整位置:lefttoprightbottom

        1、相对定位

                相对定位元素的定位是相对其正常位置。移动相对定位元素,但它原本所占的空间不会改变相对定位元素经常被用来作为绝对定位元素的容器块。

        2、绝对定位

                绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>,absolute 定位使元素的位置与文档流无关,因此不占据空间,absolute 定位的元素和其他元素重叠

        3、固定定位

                元素的位置相对于浏览器窗口固定位置,即使窗口滚动的它也不会移动;Fixed定位使元素的位置与文档流无关,因此不占据空间,Fixed定位的元素和其他元素重叠

十三、动画

1、定义

        动画是使元素从一种样式渐变化为另一种样式的效果可以改变任意多的样式任意多的次数。用百分比来规定变化发生的时间,或用关键词 “from” 和 “to”,等同于 0% 和 100%;0% 是动画的开始,100% 是动画完成

2、创建动画

        CSS3使用@keyframes 规则创建动画,当在 @keyframes 创建动画,把它绑定到一个选择器,否则动画不会有任何效果指定至少这两个CSS3的动画属性绑定向一个选择

        1、规定动画的名称

        2、规定动画的时长

@keyframes name{     /*name:动画名称开发自己命名。*/

        from|0%{

                CSS样式;

        }

        percent{                /*percent:百分比值,可以添加多个百分比值。*/

                CSS样式;

        }

        to|100%{

                CSS样式;

        }

}

十四、媒体查询

1、定义

        媒体查询能使页面不同终端设备下达到不同的效果;媒体查询根据设备大小自动识别加载不同的样式。

2、meta标签

        使用设备的宽度作为试图宽度并禁止初始的缩放。在<head>标签加入这个meta标签

<meta name=viewport content=width=devicewidth, initialscale=1, maximumscale=1,userscalable=no>

3、媒体查询语法

@media screen and (max-width: 480px) {
    body {
        background-color: lightgreen;
    }
}

十五、雪碧图

1、什么叫雪碧图

        雪碧图是根据CSS sprite音译过来的,就是将很多很多的小图标放在一张图片上,就称之为雪碧图。

2、雪碧图的作用

  1. 减少 HTTP 请求数量
  2. 提前加载需要用到图片

3、如何使用雪碧图

        方法

  1. 确定雪碧图的图标大小
  2. 测量雪碧图每个图标的大小。
  3. 根据测量结果创建一个元素。
  4. 将雪碧图设为元素的背景
  5. 设置一个偏移量,就会显示出所需要图片

        此外:在使用雪碧图的过程中,还可以图片背景图方式显示出来,并设置宽高、不平铺以及定位等属性,以达到最佳的使用效果。

十六、字体图标

 1、字体图标

         我们会经常用到一些图标。但是我们在使用这些图标时,往往会遇到失真的情况,而且图片数量很多的话,页面加载就越慢。所以,我们可以使用字体图标的方式来显示图标,既解决了失真的问题,也解决图片占用资源问题

2、常用字体图标库

        阿里字体图标库

3、优点

十七、CSS3新特性

1、圆角

       使用 CSS3 borderradius 属性,你可以给任何元素制作圆角

        borderradius属性规则

        四个值:第一个值为左上角,第二个值为右上角,第三个值为右下角,第四个值为左下角

        三个值: 第一个值为左上角,第二个值为右上角和左下角,第三个值为右下角

        两个值:第一个值为左上角与右下角,第二个值为右上角与左下角
        一个值: 四个圆角相同

2、阴影

        box-shadow 向框添加一个或多个阴影

        属性值:

box-shadow: h-shadow vshadow blur color;
描述
h-shadow 必选,水平阴影的位置
vshadow 必选,垂直阴影的位置
blur 可选,模糊距离
color 可选,阴影颜色

        

 

        

原文地址:https://blog.csdn.net/m0_62217518/article/details/134167924

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_34904.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注