首页 > 其他分享 >42.CSS之盒子模型和浮动

42.CSS之盒子模型和浮动

时间:2024-06-12 20:12:06浏览次数:17  
标签:盒子 color 42 height width background 云淡风轻 CSS 200px

CSS之盒子模型和浮动

【一】盒子模型

1.概念

  • 是指网页设计中,用于描述和布局元素的一种模型

2.组成部分

  • 内容区域
    • 盒子的实际内容,如文本、图像
  • 内边距
    • 内容区域与边框之间的空间,用于控制内容与边框之间的距离
  • 边框
    • 围绕内容区域与内边距的线条,用于给元素添加外观和样式
  • 外边距
    • 边框与其他元素之间的空间,用于控制元素与周围元素之间的距离

3.格式

/*设置外容距边框距离*/
margin: 5px 10px 15px 20px; 	/*上 右 下 左*/
margin: 5px 10px 15px;			/*上 左右 下*/
margin: 5px 10px; 				/*上下 左右 */
margin: 5px; 					/*上下左右*/
margin: 0 auto; 				/* 居中显示 */
/*设置内容距边框距离*/
padding:  5px 10px 15px 20px;;

4.示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {
            margin: 20px 15px 10px 5px
        }
        #d1 {
            width: 200px;
            height: 200px;
            background-color: springgreen;
            border: 10px dashed firebrick;
            margin: 5px 10px 15px 20px;
        }
        #d2 {
            width: 200px;
            height: 200px;
            background-color: springgreen;
            border: 10px dashed firebrick;
            /*居中显示*/
            margin: 0 auto;
            /*设置内容距边框距离*/
            padding: 10px 10px 10px 10px;
        }
    </style>
</head>
<body>
<div id="d1">第一个div标签</div>
<div id="d2">第二个div标签</div>
</body>
</html>

【二】浮动

1)作用

  • 是所有网站页面布局必备的,可将块级标签浮动起来脱离正常的文档流
  • 可将多个块级标签在一行显示
  • 脱离页面,浮动字页面之上
  • 只有涉及到页面的布局,一般都是用浮动提前规划好

2)问题演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d1 {
            border: 10px solid red
        }

        #d2 {
            height: 200px;
            width: 200px;background-color: lime;
            /*向左浮动*/
            float: left;
        }
        #d3{
            height: 200px;
            width: 200px;background-color: deepskyblue;
            /*向左浮动*/
            float: right;
        }
    </style>
</head>
<body>

<div id="d1">第一个div标签
    <div id="d2">内部第一个div标签</div>
    <div id="d3">内部第二个div标签</div>
</div>

</body>
</html>

3)解决方法

1.方式一

  • 在内部在创建一个子标签,通过固定高度撑起外边框
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d1 {
            border: 10px solid red
        }

        #d2 {
            height: 200px;
            width: 200px;
            background-color: lime;
            /*向左浮动*/
            float: left;
        }

        #d3 {
            height: 200px;
            width: 200px;
            background-color: deepskyblue;
            /*向左浮动*/
            float: right;
        }
        #d4{
            /* 固定高度 */
            height: 200px
        }
    </style>
</head>
<body>

<div id="d1">
    <div id="d2"></div>
    <div id="d3"></div>
    <div id="d4"></div>
</div>

</body>
</html>

2.方式二

  • 写div,然后添加clear属性,避免去查找长度
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d1 {
            border: 10px solid red
        }
        #d2 {
            height: 200px;
            width: 200px;
            background-color: lime;
            /*向左浮动*/
            float: left;
        }
        #d3 {
            height: 200px;
            width: 200px;
            background-color: deepskyblue;
            /*向左浮动*/
            float: right;
        }
        #d4 {
            /* 该标签的左边(地面和空中)不能有浮动元素 */
            clear: left;
            /* 该标签的左右两边(地面和空中)不能有浮动元素 */
            clear: both;
        }
    </style>
</head>
<body>

<div id="d1">
    <div id="d2"></div>
    <div id="d3"></div>
    <div id="d4"></div>
</div>

</body>
</html>

3.方式三(万能公式)

.clearfix:after {
      content: '';
      clear: both;
      display: block;
  }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d1 {
            border: 10px solid red
        }
        #d2 {
            height: 200px;
            width: 200px;
            background-color: lime;
            /*向左浮动*/
            float: left;
        }
        #d3 {
            height: 200px;
            width: 200px;
            background-color: deepskyblue;
            /*向左浮动*/
            float: right;
        }
        .clearfix:after {
            content: '';
            clear: both;
            display: block;
        }
    </style>
</head>
<body>

<div id="d1" class="clearfix">
    <div id="d2"></div>
    <div id="d3"></div>
    <div id="d4"></div>
</div>

</body>
</html>

【三】溢出属性

1)问题演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #p1 {
            height: 100px;
            width: 100px;
            border: 5px solid red;
        }
    </style>
</head>
<body>
<p id="p1">
    起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。</p>
<p>起笔描绘山水意,</p>
<p>云淡风轻如诗情。</p>
<p>倾情抒写欢乐悲,</p>
<p>文字流露真我心。</p>
</body>
</html>

2)解决代码的格式

/*默认溢出可见*/
overflow: visible;
/*溢出不可见*/
overflow: hidden;
/*隐藏且可滚动查看*/
overflow: scroll;
/*自动调整*/
overflow: auto;

3)解决演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #p1 {
            height: 200px;
            width: 200px;
            border: 5px solid red;
            /*默认溢出可见*/
            /*overflow: visible;*/
            /*溢出不可见*/
            /*overflow: hidden;*/
            /*隐藏且可滚动查看*/
            /*overflow: scroll;*/
            /*自动调整*/
            overflow: auto;
        }
    </style>
</head>
<body>
<p id="p1">
    起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。起笔描绘山水意,云淡风轻如诗情。倾情抒写欢乐悲,文字流露真我心。</p>
<p>起笔描绘山水意,</p>
<p>云淡风轻如诗情。</p>
<p>倾情抒写欢乐悲,</p>
<p>文字流露真我心。</p>
</body>
</html>

4)头像示例演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {
            margin: 0
        }
        #d1 {
            height: 150px;
            width: 150px;
            border: 2px solid deeppink;
            background-image: url("preview.gif");
            background-size: contain;
            border-radius: 50%;
            overflow: auto;
        }
    </style>
</head>
<body>

<div id="d1"></div>

</body>
</html>

【四】定位

1)介绍

  • 相对定位(Relative Positioning)

    • 相对于在正常文档流中的位置进行定位(相对于标签原来的位置做定位)
    • 相对位置会影响元素原本在文档流中的位置,但不影响其他元素的布局
  • 绝对位置(Absolute Positioning)

    • 相对于最近的非静态定位的父元素进行定位(相对于已经定位过的父标签做定位)
    • 绝对位置会脱离文档流,不会占据原本的空间,且不影响其他元素的布局,常用于创建浮动效果或覆盖其他元素
  • 固定位置(Fixed Positioning)

    • 会相对于浏览器窗口进行定位
    • 固定位置的元素会一直保持在屏幕上的固定位置,不会受到页面滚动的影响
  • 静态定位

    • 所有标签默认都是静态的static,无法改变

2)演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #d1-1 {
            height: 100px;
            width: 100px;
            background-color: red;
            /* 相较于原来的位置从左向右移动50px 如果是负数,方向则相反*/
            left: 200px;
            /* 相较于原来的位置从上向下移动50px 如果是负数 方向则相反 */
            top: 200px;
            /*相对位置*/
            position: relative;
        }
        #d2-1 {
            height: 100px;
            width: 100px;
            background-color: darkorange ;
            /* 相较于原来的位置从左向右移动50px 如果是负数,方向则相反*/
            left: 200px;
            /* 相较于原来的位置从上向下移动50px 如果是负数 方向则相反 */
            top: 200px;
            /*绝对位置*/
            position: absolute;
        }
        #d3-1 {
            height: 100px;
            width: 100px;
            background-color: lime;
            border: 5px solid red;
            bottom: 50px;
            right: 50px;
            /*固定位置*/
            position: fixed;
        }
    </style>
</head>
<body>

<div id="d1-1"></div>
<div id="d2-1"></div>
<div id="d3-1"></div>

</body>
</html>

【五】z-index模态框

1)引入

  • 动态弹出的分成界面,就是模态框

2)演示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{margin: 0}
        .middle{
            position: fixed;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            background-color: rgba(44,150,99,0.5);
            z-index: 99;
        }
        .outer{
            position: fixed;
            height: 400px;
            width: 600px;
            left: 50%;
            top: 50%;
            background-color: white;
            z-index: 100;
            margin-left: -200px;
            margin-top: -250px;

        }
    </style>
</head>
<body>

<div>底层</div>
<div class="middle">中层</div>
<div class="outer">外层
    <table>
        <thead>
        <tr>
            <th colspan="2" align="center">注册登录页面</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password"></td>
        </tr>
        <tr>
            <td><input type="submit"></td>
        </tr>
        </tbody>
    </table>
</div>

</body>
</html>

【六】透明度

1)引入

  • 不单单可以修改颜色的透明度还可以修改字体的透明度
  • rgba 只能修改颜色的透明度
  • opacity 不只是能修改颜色还能修改字体的透明度

2)示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #p1 {
            background-color: rgba(150, 200, 100, 0.4);
        }

        #p2 {
            background-color: rgb(150, 200, 100);
            opacity: 0.4;
        }

    </style>
</head>
<body>
<p id="p1">001</p>
<p id="p2">002</p>
</body>
</html>

标签:盒子,color,42,height,width,background,云淡风轻,CSS,200px
From: https://www.cnblogs.com/Mist-/p/18244619

相关文章

  • 41.CSS属性
    【一】CSS属性1)长度和宽度属性版本继承性描述widthCSS1无定义了元素内容区(ContentArea)的宽度min-widthCSS2无定义了元素内容区(ContentArea)的最小宽度max-widthCSS2无定义了元素内容区(ContentArea)的最大宽度heightCSS1无定义了元素内容区(Cont......
  • HDU 3642 (扫描线、三维体积相交)
    题意在三维空间中给你n个长方体,求空间中被这些长方体覆盖至少3次以上的区域的总体积。思路这题没给数据组数T的范围,大致看了一下其他人的都是枚举z来做的,所以我这边也是同样的做法转换成二维的扫描线来做,数组ci表示被覆盖i次的区间标记,具体扫描线怎么实现可以看我上篇博客。......
  • Tailwind CSS 实战指南:快速构建响应式网页设计
    title:TailwindCSS实战指南:快速构建响应式网页设计date:2024/6/12updated:2024/6/12author:cmdragonexcerpt:这篇文章介绍了TailwindCSS框架的特点与优势,包括其作为实用性的CSS框架如何通过预设的样式类实现快速布局和设计,以及如何在不牺牲响应式和自适应性的同时......
  • CSS 遮罩层
    html<!DOCTYPEhtml><html><head><linkrel="stylesheet"href="basic.css"></head><body><divclass="masked-element"><divclass="content">这里是需要遮罩的内容</div>......
  • 20_CSS_ 字体大小
    上面的代码还涉及继承与优先级的内容,不懂得可以参照:16_CSS_选择器的优先级_简单聊18_CSS_CSS三大特性这里简单说一下,为什么在不设置字体大小的情况下,使用不同浏览器打开时,显示的字体大小不一样:因为不同浏览器默认字体大小不一样。当设置字体小于浏览器默认字体大小或者不......
  • 【日记】分墨器大道至简,还挺好用(342 字)
    正文今天没见到任何客户,在柜台坐着玩手机玩了一天。倒是看了许多书,虽说也没看多少就是了。此外给植物换了水,同步了下文章,整理了一下数据什么的。因为钢笔都没墨水了,去拿新墨水时忽然看见商家送的分墨套装,想着旧墨水瓶里还剩下挺多吸不上来,挺浪费。这墨水毕竟不便宜,想着......
  • HTML+CSS+JS 倒计时动画效果
    1.整体效果https://mmbiz.qpic.cn/mmbiz_gif/iaVb9cSjKNDeLc7vbAUXJ4yFicKsd2d94ibVgYMJYz3frKeib1tibZhf78kc70gVp9EoqQw16Xzia6OialDaibic9o4iaMfg/640?wx_fmt=gif&from=appmsg&wxfrom=13&tp=wxpic实现了一个倒计时动画效果,包括数字区域和倒计时结束区域。数字区域显......
  • Web应用课 第二讲 CSS定义方式、选择器、颜色
    定义方式行内样式表:只作用在单个元素<!--CSS定义方式1:行内样式表--><imgsrc="/static/images/mountain.jpg"alt="山1"width="300"><imgsrc="/static/images/mountain.jpg"alt="山2"style="width:30%;&quo......
  • 【现代 CSS】标准滚动条控制规范 scrollbar-color 和 scrollbar-width
    Chrome在121版本开始,原生支持了两个滚动条样式相关的样式scrollbar-color和scrollbar-width。要知道,在此前,虽然有::-webkit-scrollbar规范可以控制滚动条,可是,::-webkit-scrollbar是非标准特性,在MDN文档中都明确了不应该在生产环境使用它。MDN-::-webkit-scrollbar......
  • scss定义伪类变量
    在SCSS中,可以使用变量来存储伪类选择器的样式,然后通过嵌套或扩展将其应用到特定的选择器中。以下是一个示例,展示如何将伪类的样式存储在一个变量中并在不同的地方使用它。示例代码1.定义一个SCSS变量存储伪类样式$base-menu-color-active:#ff0000;//定义颜色变量%be......