首页 > 其他分享 >Learn-前端-笔记-day05

Learn-前端-笔记-day05

时间:2024-10-30 17:15:42浏览次数:7  
标签:color margin 100px 笔记 height width day05 Learn border

浮动

在这里插入图片描述
div是块状元素,一个div都是独占一行,此时很多div元素在一排排列,就可以用到浮动,让竖着的盒子横着排列。

浮动属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>浮动</title>
    <style>
        /* 
            float 浮动
                属性值:left 元素左浮动
                        right 元素右浮动
                        none 元素不浮动
            浮动之后不占位置
        */
        div{
            width: 200px;
            height: 200px;
        }
        .red{
            background-color: red;
            float: left;
        }
        .blue{
            background-color: blue;
            float: left;
            /* width: 300px;
            height: 300px; */
        }
        .green{
            background-color: green;
            float: left;
        }
    </style>
</head>
<body>
    <div class="red"></div>
    <div class="blue"></div>
    <div class="green"></div>
</body>
</html>

多个元素浮动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>多个元素浮动</title>
    <style>
        /* 
            float 浮动
            很多个元素,一行排不下,换行往后排
        */
        div{
            width: 200px;
            height: 200px;
        }
        .red{
            background-color: red;
            float: left;
        }
        .blue{
            background-color: blue;
            float: left;
        }
        .green{
            background-color: green;
            float: left;
        }
    </style>
</head>
<body>
    <div class="red"></div>
    <div class="blue"></div>
    <div class="green"></div>
    <div class="red"></div>
    <div class="blue"></div>
    <div class="green"></div>
    <div class="red"></div>
    <div class="blue"></div>
    <div class="green"></div>
    <div class="blue"></div>
    <div class="red"></div>
    <div class="blue"></div>
</body>
</html>

右浮动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>右浮动</title>
    <style>
        /* 
            float 浮动
            浮动后面会用于布局,比如一个元素在左边,一个元素在右边,就可以用浮动
            左浮动:谁先浮动谁在左边
            右浮动:谁先浮动谁在右边

            右浮动很多个元素,一行排不下,也是换行靠右往后排
        */
        div{
            width: 200px;
            height: 200px;
        }
        .red{
            background-color: red;
            float: right;
        }
        .blue{
            background-color: blue;
            /* float: right; */
        }
        .green{
            background-color: green;
            /* float: right; */
        }
    </style>
</head>
<body>
    <div class="red"></div>
    <div class="blue"></div>
    <div class="green"></div>
</body>
</html>

特殊元素浮动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>特殊浮动</title>
    <style>
        /* 
            float 浮动
            不同大小的元素,一行不够不是另起一行,而是智能排序
            能节约就节约,见缝插针的原则
        */
        .red{
            width: 1000px;
            height: 1000px;
            background-color: red;
            float: left;
        }
        .blue{
            width: 800px;
            height: 800px;
            background-color: blue;
            float: left;
        }
        .green{
            width: 200px;
            height: 200px;
            background-color: green;
            float: left;
        }
    </style>
</head>
<body>
    <div class="red"></div>
    <div class="blue"></div>
    <div class="green"></div>
</body>
</html>

文字

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>文字</title>
    <style>
        /* 
            float 浮动
            浮动文字部分不会被挡住,文字会被挤出来
            可以利用这个让文字围绕一个元素的背景周边环绕
        */
        div{
            width: 200px;
            height: 200px;
        }
        .red{
            background-color: red;
            float: left;
        }
        .blue{
            background-color: blue;
            color: #fff;
            width: 300px;
            height: 300px;
        }
        .green{
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="red"></div>
    <div class="blue">你好</div>
    <div class="green"></div>
</body>
</html>```
## 清除浮动
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/45bb6378c0814fdcad9250de19db37f5.png#pic_center)

```javascript
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>清除浮动</title>
    <style>
        /* 
            高度塌陷
            上面外边的盒子高度变成了0, 加了浮动之后,不占据文档位置,下面的盒子就会上来。

            解决:
                1. 固定高度写死
                2. 清除浮动-加兄弟盒子身上,谁需要加谁身上
                    clear: none 允许浮动
                           /right 清除右浮动
                           /left  清除左浮动 
                           /both  清除所有浮动
                3. 给当前浮动元素后面补一个盒子,不设置宽高,加一个clear:both;属性
                4. overflow: hidden; 
                        会形成BFC,块格式化上下文,给当前元素的父盒子上加这个属性,
                        会自动计算内容需要占的高度,且不会影响其他元素
        */
        /* 方法一:固定写死高度 */
        /* .container{
            height: 200px;
        } */

        /* 方法四:加overflow: hidden; */
        .container{
            overflow: hidden;
        }
        .box1,.box2{
            width: 200px;
            height: 200px;
            float: left;
        }
        .box1{
            background-color: yellow;
        }
        .box2{
            background-color: blue;
        }
        .box3{
            width: 300px;
            height: 300px;
            background-color: green;
            /* 方法二:清除浮动-谁需要改变样式加谁身上 */
            /* clear: left; */
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="box1"></div>
        <div class="box2"></div>
        <!-- 方法三:给当前盒子后面补一个没有宽高的盒子,clear: left/both -->
        <!-- <div style="clear: both;"></div> -->
    </div>
    <div class="box3"></div>
</body>
</html>

盒子模型

盒子

  • CSS处理网页时,它认为每个元素都包含在一个不可见的盒子里。
  • 为什么要想象成盒子呢?因为如果把所有的元素都想象成盒子,那么我们对网页的布局就相当于是摆放盒子。
  • 我们只需要将相应的盒子摆放到网页中相应的位置即可完成网页的布局。

盒子模型

一个盒子我们会分成几个部分:

– 内容区(content)

– 内边距(padding)

– 边框(border)

– 外边距(margin)
在这里插入图片描述

内容区
  • 内容区指的是盒子中放置内容的区域,也就是元素中的文本内容,子元素都是存在于内容区中的。
  • 如果没有为元素设置内边距和边框,则内容区大小默认和盒子大小是一致的。
  • 通过width和height两个属性可以设置内容区的大小。
  • width和height属性只适用于块元素。
边框
<!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-设置盒子内容区的宽度
                height-设置盒子内容区的高度

                width和height只是设置的盒子内容区的大小,而不是盒子整个的大小。
                盒子可见框的大小是由内容区,内边距和边框共同决定的
            */
            width: 100px;
            height: 100px;
            background-color: greenyellow;
            /* 
                为元素设置边框-必须指定三个样式
                    border-width: 边框的宽度
                    border-color: 边框的颜色
                    border-style: 边框的样式
            */
            /* border-width: 10px; */
            /* 
                border-width分别指定四个边框的宽度-
                    如果指定了四个值,则分别设置给上右下左,顺时针顺序设置的
                    如果指定三个值,则这三个值分别设置给上 左右 下
                    如果指定两个值,则分别是上下 左右
                    如果指定一个值,则四边全都是该值。

                除了border-width之外,CSS还给我们提供了border-xxx-width,
                    xxx可以是top right bottom left
                    专门用来设置指定边的宽度
            */
            /* border-width: 10px 20px 30px 40px; */
            /* border-width: 10px 20px 30px; */
            /* border-width: 10px 20px; */
            border-width: 10px;
            /* border-color: red; */
            /* 
              设置边框的颜色  上右下左 /上 左右 下 /上下 左右
              与宽度一样,color也提供了border-xxx-color,
                    xxx可以是top right bottom left
                    专门用来设置指定边的颜色
            */
            /* border-color: red yellow orange blue; */
            /* border-color: red yellow orange; */
            border-color: red yellow;
            /* 
                边框的样式-border-style
                    可选值:none 没有边框-默认值
                           solid 实线
                           dashed 虚线
                           double 双线
                           dotted 点状边框 
                也可以分别指定四个边框的样式,规则与宽度和颜色一致,
                    同时也提供border-xxx-style来分别设置四个边的样式
            */
            border-style: solid;
            /* border-style: solid dashed double dotted; */
        }
    </style>
</head>
<body>
    <div class="box"></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>
        .box{
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
            /* 
                设置边框
                    大部分浏览器中,边框的宽度和颜色都有默认值,而边框的默认值是none
                    所以如果要加边框,border-style必须写
            */
            /* border-width: 10px;
            border-color: red; */

            /* border-style: solid; */

            /* 
                border 
                    边框的简写样式,
                        -通过它可以同时设置四个边框的样式,宽度,颜色
                        -没有任何的顺序要求
                        -border一指定就是指定四个边,不能分别指定  
                除了border,还有border-top,border-right,border-bottom,border-left分别设置四个边框的样式   
            */
            border: 10px solid red;
            /* border-top: 10px solid red; */
        }
        .box1{
            /* 
                如果想要给上下左都设置边框为10px,右边不需要
            */
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
            /* border-top: 10px solid yellow;
            border-bottom: 10px solid yellow;
            border-left: 10px solid yellow; */
            
            border: 10px solid yellow;
            border-right: none;
        }   
    </style>
</head>
<body>
    <div class="box"></div>
    <div class="box1"></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>
        .box{
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
            border: 10px solid red;
            /* 
                内边距 padding
                    指的是盒子的内容区与盒子边框之间的距离
                    一共有四个方向的内边距,可以通过:
                        padding-top --设置上内边距
                        padding-right --设置右内边距
                        padding-bottom --设置下内边距
                        padding-left --设置左内边距
                            来设置四个方向的内边距
                
                内边距的大小会影响盒子的可见框的大小,元素的背景会延伸到内边距
                    盒子的大小是由内容区,内边距,和边框共同决定的
                    盒子的可见宽度 = border-left-width + padding-left + width + padding-right + border-right-width
                    盒子的可见高度 = border-top-width + padding-top + height + padding-bottom + border-bottom-width
            */
            /* padding-left: 100px;
            padding-top: 100px; */

            /* 
                使用padding可以同时设置四个边框的样式,规则与border-width一致
            */

            /* padding: 100px; */
            /* padding: 100px 200px; */
            /* padding: 100px 200px 300px;  */
            padding: 100px 200px 300px 400px; 
        }
        .box1{
            width: 100%;
            height: 100%;
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="box1"></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>
        .box{
            width: 200px;
            height: 200px;
            background-color: greenyellow;
            border: 10px solid red;
            /* 
                外边距 margin
                    指的是当前盒子与其他盒子之间的距离
                    他不会影响可见框的大小,而是会影响到盒子的位置
                    盒子由四个方向的外边距:
                        margin-top  --设置上外边距
                        margin-right  --设置右外边距
                        margin-bottom  --设置下外边距
                        margin-left  --设置左外边距

                        由于页面中的元素都是靠左靠上摆放的,
                            所以注意当我们改变上和左外边距时,会导致盒子自身的位置发生改变
                            而如果设置右和下边框会改变其他盒子的位置
            */
            /* margin-top: 100px; */
            /* margin-left: 100px; */

            /* 设置右和下外边距 */
            margin-bottom: 100px;
            margin-right: 100px;

            /* 
                外边距可以指定一个负值,
                    如果外边距设置的时负值,则元素会向反方向移动
            */
            margin-top: -100px;
            margin-left: -100px;
            
            /* margin-bottom不会影响自身,会影响其他元素 */
            margin-bottom: -100px;


            /* 
                margin还可以设置为auto,auto一般只设置给水平方向的margin
                    如果只指定左外边距和右外边距的margin为auto,则会将会外边距设置为最大值
                    垂直方向外边距如果设置为auto,则外边距就是0

                如果将left和right同时设置为auto,则会将两侧的外边距设置为相同的值
                使元素自动在父元素中居中,我们经常将左右外边距都设置为auto

            */
            margin-left: auto;
            margin-right: auto;
            
            /* 
                外边距可以直接简写属性margin,可以同时设置四个方向的外边距
                规则与padding一样
            */
            /* margin: 10px 20px 30px 40px; */
            /* margin: 10px 20px 30px; */
            /* margin: 10px 20px; */
            margin: 10px;
            /* margin: 0 auto; */
        }
        .box1{
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="box"></div>
    <div class="box1"></div>
</body>
</html>```
#### 垂直外边距重叠

```javascript
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>垂直外边距的重叠</title>
    <style>
        .box1{
            width: 100px;
            height: 100px;
            background-color: red;
            /* 设置下外边框 */
            margin-bottom: 100px;
        }
        /* 
            垂直外边距的重叠(相邻,垂直两个条件)
                在网页中相邻的垂直方向的外边距会发生外边距的重叠
                    所谓的垂直外边距的重叠是指兄弟元素之间的相邻外边距会取最大值,而不是求和
                    如果父子元素的垂直外边距相邻了,则子元素的外边框会设置给父亲
        
        */
        .box2{
            width: 100px;
            height: 100px;
            background-color: green;
            /* 设置上外边框 */
            margin-top: 100px;
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: yellow;
            /* 
                2.为box3设置一个上边框
                3.设置一个padding-top,加上之后高度要减去1px,高度为199px
            */
            /* border-top: 1px solid red; */
            /* padding-top: 1px; */
            
            /* 
                3.不给box4加外边距了,给box3加一个内边距 padding-top: 100px;
                  加上之后宽度要减去100px,height: 100px
            */
            /* padding-top: 100px; */
        }
        .box4{
            width: 100px;
            height: 100px;
            background-color: red;
            /* 3. */
            /* margin-top: 10px; */
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <!-- 可以在两个盒子之间加个元素,变成不相邻的盒子就不会发生重叠现象 -->
    <!-- 111 -->
    <div class="box2"></div>

    <div class="box3">
        <!-- 222 -->
        <!-- 1. 可以加一个元素,变成不相邻的盒子 -->
        <div class="box4"></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>
        /* body{
            margin: 0;
        }
        p{
            margin: 0;
        }
        ul{
            margin: 0;
            padding: 0;
        } */
        *{
            margin: 0;
            padding: 0;
        }
        div{
            width: 100px;
            height: 100px;
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div></div>
    <p>111</p>
    <ul>
        <li>222</li>
        <li>333</li>
        <li>444</li>
    </ul>
</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>
        div{
            width: 100px;
            height: 100px;
            background-color: yellow;
        }
        span{
            background-color: green;
        }
        .text1{
            /* 内容区,内边距,边框,外边距 */

            /* 
                内联元素不能设置width和height 
            */
            width: 100px;
            height: 100px;

            /* 
                设置水平内边距,内联元素可以设置水平方向的内边距 
            */
            padding-left: 100px;
            padding-right: 100px;

            /* 
                垂直方向内边距,内联元素可以设置垂直方向的内边距,但是不会影响布局(所占的位置的高度还是之前的高度) 
            */
            /* padding-top: 50px;
            padding-bottom: 50px; */

            /* 
                为元素设置边框,
                    内联元素可以设置边框,但是垂直的边框不会影响页面布局 
            */
            /* border: 100px solid red; */

            /* 
                水平外边距
                    内联元素支持水平方向的外边距
                    水平外边距两个元素之间不会重叠,而是求和
            */
            margin-left: 100px;
            margin-right: 100px;
            /* 
                内联外边距不支持垂直外边距
            */
            margin-top: 100px;
            margin-bottom: 100px;
        }
        .text2{
            margin-left: 100px;
            margin-right: 100px;

        }
    </style>
</head>
<body>
    <span class="text1">第一个元素</span>
    <span class="text2">第二个元素</span>
    <span>第三个元素</span>
    <span>第四个元素</span>
    <div></div>
</body>
</html>
标准盒模型和怪异盒模型

box-sizing: 属性允许以特定的方式定义匹配某个区域的特定元素

/* 标准盒模型属性:content-box  */
div {
  box-sizing: content-box;
}

/* 怪异盒模型属性:border-box */
div {
  box-sizing: border-box;
}
<!DOCTYPE html>
<html lang="en">


<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>标准盒模型和怪异盒模型</title>
    <style>
        div {
            width: 50px;
            height: 50px;
            padding: 5px;
            border: 6px solid red;
            margin: 7px;
        }
    </style>
</head>

<body>
    <div>1</div>
    <div style="box-sizing: content-box">2</div>
    <div style="box-sizing: border-box;">3</div>
</body>

</html>

标准盒模型和怪异盒模型的区别

标准盒模型:设置的宽度和高度只是内容content的宽高,使用box-sizing: content-box;转化为标准盒模型。
标准盒模型下:

盒子的可见宽度 = width(content的宽度) + padding + border-width 盒子的可见高度 = height(content的高度) + padding + border-width

怪异盒模型:设置的宽度和高度是整个盒子的宽度和高度,在宽度和高度之内绘制元素的内边距和边框。使用box-sizing: border-box;转化为怪异盒模型。

怪异盒模型下:

盒子的可见宽度 = width = content + padding + border-width 盒子的可见高度 = height = content + padding + border-width

标签:color,margin,100px,笔记,height,width,day05,Learn,border
From: https://blog.csdn.net/qq_58698928/article/details/143303123

相关文章

  • Lyndon 理论学习笔记
    字符串,太深刻了/kk定义下标从1开始。\(+\)是字符串拼接。\(|s|\)表示\(s\)的长度。\(s_i\)表示\(s\)的第\(i\)个字符。\(s^k\)表示\(k\)个\(s\)拼接的结果。字符串间的大小关系用字典序比较。Lyndon串字符串\(s\)是Lyndon串当且仅当\(s\)小于其......
  • 10月30日记录(《代码大全》(第二版)精读笔记)
    《代码大全》中对于“代码质量”和“设计原则”的探讨深刻而全面,给我留下了深刻的印象。在当今快速发展的软件开发环境中,理解和应用这些概念对于提升开发效率和软件质量至关重要。首先,关于代码质量,麦克康奈尔强调了代码不仅需要正确实现功能,还必须具备良好的可读性和可维护性。代......
  • 小白江科大stm32笔记
    P5        GPIO输出·带FT的引脚可容忍5v电压·所有的GPIO都是在APB2外设总线上·每个GPIO总共有16个引脚,从0到15·32是32位单片机,寄存器有32位,但只有16个端口,所以只有低16位有端口下图为GPIO基本结构:  ·以下面GPIO电路图为例,左三为寄存器,中间为驱动器,右边为......
  • Javabase笔记分享
    JAVA1.词组proiect项目create创建src代码存放源文件new新建package包(分类存放)命名:com.公司.用途class类(写代码)Test测试System.out.println系统.输出.打印(Syso再用alt+回车键)2.数据类型整数(4个)byte->short->int->long其中int和long最为常用小数(2个)f......
  • HTML笔记(2)
    该笔记为观看acwing(acwing.com)后编写,其中部分内容转自acwing,如有侵权请联系我HTML基础标签文本标签虽然很多,但大部分可看成是预定好样式的<div>和<span>div标签<div>元素(或HTML文档分区元素)是一个通用型的流内容容器,在不使用CSS的情况下,其对内容或布局没有任......
  • 代码大全2阅读笔记
    代码大全2阅读笔记《代码大全2》还是一本关于软件开发的全面指南,内容包括了代码质量、设计原则、构建发布、调试性能优化和实际案例经验。在这本书中,调试和性能优化这两个领域的重要性尤为突出,而作者通过实际案例和经验分享,向读者展示了如何将理论知识应用于实际工作中,并解决实际......
  • TS学习笔记(四)
    1.类型缩小(联合类型)对变量进行类型缩小,除了使用as断言外,还可以使用ifelse(switch也行)。如下functionprintId(id:number|string){if(typeofid==='string'){console.log(id.toUpperCase());}else{console.log(id);}}类型缩小是TS处理联合......
  • Paper Reading: Mixed Bagging: A Novel Ensemble Learning Framework for Supervised
    目录研究动机文章贡献本文方法分组混合Bagging增量混合Bagging实验结果本文方法的设置数据集和实验设置对比实验优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图......
  • Vue学习笔记(十二)
    async与await1.asyncasync作为一个关键字放到声明函数前面,表示该函数为一个异步任务,不会阻塞后面函数的执行async函数里如果有异步过程会等待,但async函数本身会马上返回,不会阻塞当前线程。可以简单认为async函数工作在主线程,同步执行,不会阻塞界面渲染;async函数内部由awai......
  • 笔记本电脑组装及装配行业MES系统解决方案介绍
    一、笔记本电脑组装及装配行业为什么需要上MES系统?随着笔记本电脑市场的不断发展,消费者对产品的质量、性能和定制化需求不断提高,导致生产企业面临越来越多的挑战。笔记本电脑组装及装配行业具有多工序、多部件、多批次的特点,如何确保生产效率、提高产品质量、缩短交货周期成......