支持中国的体育老妹子 發表於 2020-8-14 23:57:00

CSS基础学习day01

<p>一、CSS简介</p>
<p>    &nbsp;css是一种网页渲染技术,把文档结构和表现形式分离,使得网页更加的清爽。</p>
<p>&nbsp;   &nbsp; &nbsp; &nbsp; css的必要条件:渲染特定的html标签。</p>
<p>    div、span等容器:</p>
<p>      div可以称为层或者块状元素,和p标签、h等标签具有一样的特点:单独占一行。</p>
<p>      span称行内元素,和a标签、font标签、img等标签具有一样的特点:可以在一行中显示。</p>
<p>    但是呢:css学习完后,没有绝对的“行内元素”和“块状元素”,可以通过display属性来进行转换【inline(行内)与block(块状)】</p>
<p>二、css写在哪呢?</p>
<p>    1:.css可以写在标签内部的style属性中,这种称为内联样式。</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;span style="font-size: 80px;color: red;font-weight: bold;"&gt;<span style="color: rgba(0, 0, 0, 1)">
            一个字
      </span>&lt;/span&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>    2.css可以写在hear下的style标签中,这种称为内部样式表。</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;style type="text/css"&gt;<span style="color: rgba(0, 0, 0, 1)">
            span{
               font</span>-<span style="color: rgba(0, 0, 0, 1)">size: 80px;
               color: red;
               font</span>-<span style="color: rgba(0, 0, 0, 1)">weight: bold;
            }
      </span>&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;span&gt;<span style="color: rgba(0, 0, 0, 1)">
            一个字
      </span>&lt;/span&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>    3.css可以写在单独的css文件中,需要&lt;link&gt;标签来引入css文件,这种称为外部样式表</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;link rel="stylesheet" type="text/css" href="mystyle.css"&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;span&gt;<span style="color: rgba(0, 0, 0, 1)">
            一个字
      </span>&lt;/span&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>二、选择器</p>
<p>  1.标签选择器:使用HTML标签名来作为选择器,作用在相同的标签上。</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;style type="text/css"&gt;<span style="color: rgba(0, 0, 0, 1)">
            span{
               font</span>-<span style="color: rgba(0, 0, 0, 1)">size: 80px;
               color: red;
               font</span>-<span style="color: rgba(0, 0, 0, 1)">weight: bold;
            }
      </span>&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;span&gt;<span style="color: rgba(0, 0, 0, 1)">
            一个字
      </span>&lt;/span&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>   2.类选择器:以 . + 名称来命名</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;style type="text/css"&gt;<span style="color: rgba(0, 0, 0, 1)">
            .sp{
                color: red;
            }
      </span>&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;span class="sp"&gt;<span style="color: rgba(0, 0, 0, 1)">
            一个字
      </span>&lt;/span&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>    3.ID选择器:以#+名称来命名</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;style type="text/css"&gt;<span style="color: rgba(0, 0, 0, 1)">
            #sp{
                color: red;
            }
      </span>&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;span id="sp"&gt;<span style="color: rgba(0, 0, 0, 1)">
            一个字
      </span>&lt;/span&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>    4.通配符选择器,直接以*号命名,一般建议写在css开头,会渲染所有的标签。</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;style type="text/css"&gt;
            *<span style="color: rgba(0, 0, 0, 1)">{
                margin: </span>0<span style="color: rgba(0, 0, 0, 1)">;
                padding: </span>0<span style="color: rgba(0, 0, 0, 1)">;
            }
            #sp{
                color: red;
            }
      </span>&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;span id="sp"&gt;<span style="color: rgba(0, 0, 0, 1)">
            一个字
      </span>&lt;/span&gt;
    &lt;/body&gt;
&lt;/html&gt;   </pre>
</div>
<p>    5.符合选择器或者群组选择器,将多个选择器写在一起,使用相同的css样式来渲染元素。</p>
<p><img src="https://img2020.cnblogs.com/blog/2102779/202008/2102779-20200815175929107-1559282598.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;    6.父子选择器。缩小目标范围,只作用在 “子 级”元素上,由父选择器&gt;子选择器构成,注意:最终是渲染 符合子选择器的元素。父选择器和子选择器可以由,标签、id、class 等选择器构成。</p>
<p><img src="https://img2020.cnblogs.com/blog/2102779/202008/2102779-20200815180556947-2065611900.png" alt="" loading="lazy"></p>
<p>    7.伪类选择器hover,当鼠标放到对象上面时会出现hover的效果。</p>
<p>        :before &gt;&gt;&gt;&nbsp;在匹配的元素中,添加内容---添加在原有内容的前面。</p>
<p align="left">        :after &gt;&gt;&gt;&nbsp;在匹配的元素中,添加内容---添加在原有内容的后面</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;style type="text/css"&gt;
            <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">:hover
             * 鼠标悬停时的效果
             </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            a{
                background</span>-color: #008000<span style="color: rgba(0, 0, 0, 1)">;
                width: 300px;
                height: 42px;
            }
            a:hover{
                color: red;
                background</span>-<span style="color: rgba(0, 0, 0, 1)">color: #DCDCDC;
            }
            
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">:before
             * 在匹配的元素中,添加内容---添加在原有内容的前面
             * </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            li:before{
                content: </span>"这是第"<span style="color: rgba(0, 0, 0, 1)">;
            }
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
             * :after
             * 在匹配的元素中,添加内容---添加在原有内容的后面
             * </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            li:after{
                content: </span>"个"<span style="color: rgba(0, 0, 0, 1)">;
            }
            #div3{
                border: 1px solid red;
                border</span>-<span style="color: rgba(0, 0, 0, 1)">radius: 5px;
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">    box-shadow: ;</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
                text</span>-<span style="color: rgba(0, 0, 0, 1)">align: center;
                width: 80px;
            }
            #ul1{
                margin: </span>0<span style="color: rgba(0, 0, 0, 1)">;
                padding: </span>0<span style="color: rgba(0, 0, 0, 1)">;
                list</span>-<span style="color: rgba(0, 0, 0, 1)">style: none;
                </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">不显示</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
                display: none;
            }
            #div3:hover #ul1{
                display: block;
            }
      </span>&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;a&gt;演示hover&lt;/a&gt;
      
      &lt;ul&gt;
            &lt;li&gt;1&lt;/li&gt;
            &lt;li&gt;2&lt;/li&gt;
            &lt;li&gt;3&lt;/li&gt;
            &lt;li&gt;4&lt;/li&gt;
      &lt;/ul&gt;
      &lt;div&gt;*************************************************************&lt;/div&gt;
      &lt;div id="div3"&gt;
            &lt;span&gt;内容&lt;/span&gt;
            &lt;ul id="ul1"&gt;
                &lt;li&gt;1&lt;/li&gt;
                &lt;li&gt;2&lt;/li&gt;
                &lt;li&gt;3&lt;/li&gt;
                &lt;li&gt;4&lt;/li&gt;
            &lt;/ul&gt;
      &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>&nbsp;</p>
<p>三、css常用属性</p>
<p>  1.尺寸:</p>
<p>    宽度&nbsp; width:100px或者100%;</p>
<p>    高度 height:100px或者100%;</p>
<p>  2.边框</p>
<p align="left">&nbsp;&nbsp;     border-top: 2px solid red;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp; border-right: 5px dashed black;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   border-bottom: 10px double violet;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   border-left: 3px dotted green;</p>
<p align="left">     设置上下左右边框的样式不同,solid: 定义实线边框,dashed: 定义一个虚线边框,double: 定义两个边框。 两个边框的宽度和 border-width 的值相同,dotted: 定义一个点线边框</p>
<p align="left">  </p>
<p align="left">&nbsp; &nbsp;   &nbsp;/*字体*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp; /*颜色*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   color: orange;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*字体大小*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   font-size: 20px;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*字体加粗*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   font-weight: bold;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*字体样式*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   font-family: "微软雅黑";</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*倾斜字体*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   font-style: italic;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*文本居中*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp; text-align: center;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*行高:使文本垂直居中*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   line-height: 700px;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*文字装饰线*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   text-decoration:overline;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*背景*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp; /*背景颜色*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp; background-color: yellow;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; /*背景图片*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   background-image:url(img/img1.jpg) ;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*背景图片是否重复*/</p>
<p align="left">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  background-repeat:repeat-y;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*表格边框合并*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp; border-spacing: 0px;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   border-collapse: collapse;</p>
<p align="left">  /*转换成块状元素*/</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   display: block;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*背景图片定位*/</p>
<p align="left">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;   background-position: center top;</p>
<p align="left">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;   background-position:-30px&nbsp; 200px;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*背景图片放缩*/</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   background-size: 100% 100%;</p>
<p align="left">  /*去掉列表项目符号*/</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   ist-style: none;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*设置列表的项目符号图片*/</p>
<p>&nbsp;&nbsp;     list-style-image: url(img/resizeApi.png);</p>
<p>   设置行内块状元素:兼具行内元素和块状元素的特点</p>
<p>      display: inline-block;</p>
<p>四、盒子模型</p>
<p>  注意:行内元素设置宽高无效,由内容大小确定。如span标签等。</p>
<p>  1.外边距 margin</p>
<p>    margin:50px; 上下左右各外边距都为50px;</p>
<p>    单独设置:</p>
<p>      margin-left: 15px;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   &nbsp; margin-right:30px ;</p>
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   &nbsp;&nbsp;margin-top: 50px;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; margin-bottom: 20px;</p>
<p>  2.内边距 padding</p>
<p>    padding: 30px; 设置上下左右内边距都为30px;</p>
<p>    单独设置:</p>
<p>      &nbsp;padding-bottom: 30px;</p>
<p align="left">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding-left: 20px;</p>
<p align="left">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding-right: 30px;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; padding-top: 10px;</p>
<p>  3.盒子模型实际高度=(margin-top)+(border-top)+(padding-top)+height +(margin-bottom)+(border-bottom)+(padding-bottom);</p>
<p>  &nbsp; &nbsp;盒子模型实际宽度=(margin-left)+(border-left)+(padding-left)+width+(margin-right)+(border-right)+(padding-right);</p>
<p>     注意如果设置了box-sizing: border-box;,盒子宽度和高度就包含了border和padding,不再使用上面的公式计算高度和宽度。</p>
<p>  </p>
<p>  盒子模型外边距合并情况1:</p>
<p>    1.两个div嵌套</p>
<p>    2.两个div都没有设置边框</p>
<p>    这样会使margin值合并,以margin值大的为准</p>
<p>  实例:</p>
<p>    首先设置存在边框效果:</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;style type="text/css"&gt;
            <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">通配符选择器:设置默认样式</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
            *<span style="color: rgba(0, 0, 0, 1)">{
                margin: </span>0<span style="color: rgba(0, 0, 0, 1)">;
                padding: </span>0<span style="color: rgba(0, 0, 0, 1)">;
            }
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">id 选择器</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            #div1{
                margin</span>-<span style="color: rgba(0, 0, 0, 1)">top:50px;
                width: 400px;
                height: 400px;
                background</span>-<span style="color: rgba(0, 0, 0, 1)">color: orange;
                border: 1px solid red;
            }
            #div2{
                margin</span>-<span style="color: rgba(0, 0, 0, 1)">top:20px;
                width: 200px;
                height: 200px;
                background</span>-<span style="color: rgba(0, 0, 0, 1)">color: pink;
                border: 1px solid blue;
            }
      </span>&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;div id="div1"&gt;
            &lt;div id="div2"&gt;
               
            &lt;/div&gt;
      &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>效果图:</p>
<p><img src="https://img2020.cnblogs.com/blog/2102779/202008/2102779-20200814232303127-1121108697.png" alt="" loading="lazy"></p>
<p>  取消边框就会出现margin值合并,margin以大的为准:</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;style type="text/css"&gt;
            <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">通配符选择器:设置默认样式</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
            *<span style="color: rgba(0, 0, 0, 1)">{
                margin: </span>0<span style="color: rgba(0, 0, 0, 1)">;
                padding: </span>0<span style="color: rgba(0, 0, 0, 1)">;
            }
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">id 选择器</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            #div1{
                margin</span>-<span style="color: rgba(0, 0, 0, 1)">top:50px;
                width: 400px;
                height: 400px;
                background</span>-<span style="color: rgba(0, 0, 0, 1)">color: orange;
                </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> border: 1px solid red; </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            }
            #div2{
                margin</span>-<span style="color: rgba(0, 0, 0, 1)">top:20px;
                width: 200px;
                height: 200px;
                background</span>-<span style="color: rgba(0, 0, 0, 1)">color: pink;
                </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> border: 1px solid blue; </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            }
      </span>&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;div id="div1"&gt;
            &lt;div id="div2"&gt;
               
            &lt;/div&gt;
      &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>效果图:</p>
<p><img src="https://img2020.cnblogs.com/blog/2102779/202008/2102779-20200814232709212-646184015.png" alt="" loading="lazy"></p>
<p>  当里面的div的margin-top大于外面的div时,没有边框,margin会以大的值为准。</p>
<p><img src="https://img2020.cnblogs.com/blog/2102779/202008/2102779-20200814233012382-1233171600.png" alt="" loading="lazy"></p>
<p>  解决这种问题的方法:</p>
<p>           1.选择避免这种情况。</p>
<p>           2.在父级div上添加padding-top=“xx px”;</p>
<p>盒子模型外边距合并情况2:</p>
<p>      1.当两个div 垂直排列时,如果div1有 margin-bottom ,div2有margin-top,这时也会发生边距合并,并且以 较大的值为准。</p>
<p>  实例:</p>
<div class="cnblogs_code">
<pre>&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
      &lt;meta charset="UTF-8"&gt;
      &lt;title&gt;&lt;/title&gt;
      &lt;style type="text/css"&gt;
            <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">通配符选择器:设置默认样式</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
            *<span style="color: rgba(0, 0, 0, 1)">{
                margin: </span>0<span style="color: rgba(0, 0, 0, 1)">;
                padding: </span>0<span style="color: rgba(0, 0, 0, 1)">;
            }
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">id 选择器</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            #div1{
               
                width: 300px;
                height: 300px;
                background</span>-<span style="color: rgba(0, 0, 0, 1)">color: green;
                border: 1px solid red;
                margin</span>-<span style="color: rgba(0, 0, 0, 1)">bottom: 50px;
            }
            #div2{
                </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> margin-top:120px; </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
                width: 200px;
                height: 200px;
                background</span>-<span style="color: rgba(0, 0, 0, 1)">color: pink;
                border: 1px solid blue;
                margin</span>-<span style="color: rgba(0, 0, 0, 1)">top: 30px;
            }
      </span>&lt;/style&gt;
    &lt;/head&gt;
    &lt;body&gt;
      &lt;div id="div1"&gt;&lt;/div&gt;
      &lt;div id="div2"&gt;&lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre>
</div>
<p>  上面的div设置了margin-bottom为50px,下面的div设置了margin-top为30px,按理它们之间的间距应该为80px,但是发生了间距合并,以margin值大的为准,所以它们的间距为50px。</p>
<p><img src="https://img2020.cnblogs.com/blog/2102779/202008/2102779-20200814234226375-1110537827.png" alt="" loading="lazy"></p>
<p>    该问题无法解决,只能去避免,找准参照物就可以更好的实现效果。</p><br><br>
来源:https://www.cnblogs.com/mengwenbiao/p/13507120.html
頁: [1]
查看完整版本: CSS基础学习day01