css基础三

思维导图:
在这里插入图片描述

标准流

所谓的标准流: 就是标签按照规定好默认方式排列

浮动

是什么?

float 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

  • 特性
    1.浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。
    2.浮动的元素会具有行内块元素的特性
    ​3.浮动元素的大小根据内容来决定
    ​4.浮动的盒子中间是没有缝隙的
有什么用?

有很多的布局效果,标准流没有办法完成,此时就可以利用浮动完成布局。 因为浮动可以改变元素标签默认的排列方式.

怎么用?
  • 浮动元素经常和标准流父级搭配使用
浮动布局注意点

1、浮动和标准流的父盒子搭配。

先用标准流的父元素排列上下位置, 之后内部子元素采取浮动排列左右位置

2、一个元素浮动了,理论上其余的兄弟元素也要浮动。

一个盒子里面有多个子盒子,如果其中一个盒子浮动了,其他兄弟也应该浮动,以防止引起问题。

浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流.

清除浮动
  • 为什么要清除浮动

由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的标准流盒子。

  • 清除浮动的本质
    • 清除浮动的本质是清除浮动元素造成的影响:浮动的子标签无法撑开父盒子的高度
      注意:

1.如果父盒子本身有高度,则不需要清除浮动
2. 清除浮动之后,父级就会根据浮动的子盒子自动检测高度。
3.父级有了高度,就不会影响下面的标准流了

清除浮动的方式

1.、额外标签法

额外标签法也称为隔墙法,是 W3C 推荐的做法。

使用方式:
​ 额外标签法会在浮动元素末尾添加一个空的标签。

<div style="clear:both"></div>,或者其他标签(如<br />等)。

优点: 通俗易懂,书写方便

缺点: 添加许多无意义的标签,结构化较差

注意: 要求这个新的空标签必须是块级元素。

2.父级添加 overflow:hidden(BFC规范) 属性
可以给父级添加 overflow 属性,将其属性值设置为 hidden、 auto 或 scroll 。

例如:

overflow:hidden | auto | scroll;

优点:代码简洁

缺点:无法显示溢出的部分, 如果有子元素想溢出,那么会受到影响。

注意:是给父元素添加代码

3.父级添加after伪元素 (推荐)

:after 方式是额外标签法的升级版。给父元素添加:

 .clearfix:after {  
   content: ""; 
   display: block; 
   height: 0; 
   clear: both; 
   visibility: hidden;  
 } 
 .clearfix {  /* IE6、7 专有 */ 
   *zoom: 1;
 }   

优点:没有增加标签,结构更简单

缺点:照顾低版本浏览器

代表网站: 百度、淘宝网、网易等

4.父级添加双伪元素(推荐)

给父元素添加

 .clearfix:before,.clearfix:after {
   content:"";
   display:table; 
 }
 .clearfix:after {
   clear:both;
 }
 .clearfix {
    *zoom:1;
 }   

优点:代码更简洁

缺点:照顾低版本浏览器

代表网站:小米、腾讯等

总结:

​ 1、清除浮动本质是?

​ 清除浮动的本质是清除浮动元素脱离标准流造成的影响

​ 2、清除浮动策略是?

​ 闭合浮动. 只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子.

​ 3、额外标签法?

​ 隔墙法, 就是在最后一个浮动的子元素后面添

​ 4、加一个额外标签, 添加 清除浮动样式.

​ 实际工作可能会遇到,但是不常用

定位

CSS position 属性

通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式。

  • position 属性值的含义:

static

元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。

relative 相对定位

元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。

1.不使元素脱离文档流
2.不影响其他元素布局
3.left 、top、right、bottom是相对当前元素自身进行偏移的

absolute 绝对定位

元素框从文档流完全删除,并相对于其包含块定位。

1.使元素完全脱离文档流
2.使内联元素支持宽高
3.使块元素默认宽根据内容决定(让块具有内联的特性)
4.如果定位祖先元素相对于定位祖先元素发生偏移,没有定位祖先元素相对于整个文档发生偏移(绝对、相对、固定)

相对定位、绝对定位案例:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>定位实现元素居中</title>
    <style>
        .box {
            width: 300px;
            height: 300px;
            border: 1px solid;
            /* 设置相对定位作为box2 的祖先级 */
            position: relative;
        }

        .box2 {
            width: 100px;
            height: 100px;
            background-color: red;
            /* 绝对定位 */
            position: absolute;
            left: 50%;
            top: 50%;
            margin-left: -50px;
            margin-top: -50px;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="box2"></div>
    </div>
</body>

</html>

效果:
在这里插入图片描述
实现下拉菜单:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>定位实现下拉菜单</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style: none;
        }

        .menu {
            width: 100px;
            height: 30px;
            border: 1px black solid;
            margin: 20px auto;
            /*相对定位 这里不加的话下面ul的偏移则相对于整个页面,加了则以这个父容器 */
            position: relative;
        }

        .menu ul {
            width: 100px;
            border: 1px black solid;
            /* 绝对定位 */
            position: absolute;
            left: -1px;
            top: 30px;
            display: none;
            background-color: #ffffff;
        }

        .menu:hover ul {
            display: block;
        }

        .menu ul li:hover {
            background-color: gray;

        }

        p {
            text-align: center;
        }
    </style>

</head>

<body>
    <div class="menu">
        卖家中心
        <ul>
            <li>选项1</li>
            <li>选项2</li>
            <li>选项3</li>
            <li>选项4</li>
        </ul>
    </div>
    <p>测试段落测试段落测试段落测试段落测试段落测试段落测试段落测试段落</p>
</body>

</html>

在这里插入图片描述
fixed 固定定位

元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

1.使元素完全脱离文档流
2.使内联元素支持宽高(让内联具备块特性)
3.使块元素默认宽根据内容决定(让块具备内联的特性)
4.相对于整个浏览器窗口进行偏移,不受浏览器滚动条的影响

sticky 粘性定位

在指定的位置进行粘性操作

z-index 定位层级

默认层级为0
嵌套时候的层级问题

其他

显示框类型
  • display:none 不占空间的隐藏
  • visibility: hidden 占空间的隐藏
溢出隐藏

定义和用法

  • overflow 属性规定当内容溢出元素框时发生的事情。
    在这里插入图片描述
  • overflow-x、overflow-y针对两个轴分别设置
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    /* div{ width:300px; height:200px; border:1px black solid; overflow: hidden;} */
    /* div{ width:300px; height:200px; border:1px black solid; overflow: scroll;} */
    /* div{ width:300px; height:200px; border:1px black solid; overflow: auto;} */
    div{ width:300px; height:200px; border:1px black solid; overflow-y: auto; overflow-x: scroll;}
    </style>
</head>
<body>
    <div>
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
        溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏 溢出隐藏
    </div>
</body>
</html>

效果:
在这里插入图片描述

透明度与手势

opacity : 0(透明) ~ 1(不透明)
0.5(半透明)

    注:占空间、所有的子内容也会透明

rgba() : 0 ~ 1

    注:可以让指定的样式透明,而不影响其他样式

cursor : 手势
default : 默认箭头
要实现自定义手势:
准备图片: .cur 、 .ico
cursor : url(./img/cursor.ico),auto;

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>鼠标手势</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: aqua;
            /* 鼠标手型 */
            /* cursor: pointer; */

            /* 自定义鼠标样式 */
            cursor: url("./images/cursor.ico"), auto;
        }
    </style>
</head>

<body>
    <div>测试</div>
</body>

</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值