鱼C论坛

 找回密码
 立即注册
查看: 4910|回复: 8

[学习笔记] 052 - 总为浮云能蔽日(下)

[复制链接]
发表于 2020-9-8 23:47:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2020-9-24 18:38 编辑






哈哈,废话不多说了,#敲黑板时刻!





在线视频:传送门





课程思维导图

52.jpeg

猛戳

                               
登录/注册后可看大图
超清





基础的两列布局中元素部分代码:

  1. <h1>两列布局演示</h1>
  2.   <div class="left">
  3.     <h2>右侧列巴拉巴拉</h2>
  4.     <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Est exercitationem sint animi harum minima veritatis
  5.       itaque asperiores numquam cupiditate, odio ad nobis tempore doloribus facilis. Inventore itaque quis obcaecati
  6.       adipisci?</p>
  7.   </div>
  8.   <div class="right">
  9.     <h2>右侧列巴拉巴拉</h2>
  10.     <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque natus ducimus, corporis veritatis obcaecati, illo
  11.       ex nemo corrupti dicta a iusto totam in nostrum. Accusamus fugit ut magnam facilis facere!</p>
  12.   </div>
复制代码

样式:

  1. div.left {
  2.       background-color: pink;
  3.       width: 50%;
  4.       float: left;
  5.     }

  6.     div.right {
  7.       background-color: lightblue;
  8.       width: 50%;
  9.       float: right;
  10.     }
复制代码

效果:

2020-09-24_16-55-44.jpg


如果两个 div 都加上:

  1. padding: 20px;
复制代码

效果:

2020-09-24_17-12-13.jpg


发现左右被挤到两行。

因为默认情况下的宽度都是元素内容的宽度。

这样设置 padding 后就超过整体父元素的 50%,所以就变成了两行。

如果设置 box-sizing 属性值为 border-box,那么宽度就包含到边框的位置。

这样就不会超过,在每个 div 样式中添加:

  1. box-sizing: border-box;
复制代码

效果就和刚开始看的一样了。


三列布局

基础元素:

  1. <h1>三列布局演示</h1>
  2.     <div class="left">
  3.         <h2>右侧列巴拉巴拉</h2>
  4.         <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Est exercitationem sint animi harum minima veritatis itaque asperiores numquam cupiditate, odio ad nobis tempore doloribus facilis. Inventore itaque quis obcaecati adipisci?</p>
  5.     </div>
  6.     <div class="middle">
  7.         <h2>中间列巴拉巴拉</h2>
  8.         <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Est exercitationem sint animi harum minima veritatis itaque asperiores numquam cupiditate, odio ad nobis tempore doloribus facilis. Inventore itaque quis obcaecati adipisci?</p>
  9.     </div>
  10.     <div class="right">
  11.         <h2>右侧列巴拉巴拉</h2>
  12.         <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Atque natus ducimus, corporis veritatis obcaecati, illo ex nemo corrupti dicta a iusto totam in nostrum. Accusamus fugit ut magnam facilis facere!</p>
  13.     </div>
复制代码

样式:

  1. div.left {
  2.             background-color: pink;
  3.             width: 33.33%;
  4.             float: left;
  5.             padding: 20px;
  6.             box-sizing: border-box;
  7.         }

  8.         div.middle {
  9.             background-color: cornsilk;
  10.             width: 33.33%;
  11.             float: right;
  12.             padding: 20px;
  13.             box-sizing: border-box;
  14.         }        

  15.         div.right {
  16.             background-color: lightblue;
  17.             width: 33.33%;
  18.             float: right;
  19.             padding: 20px;
  20.             box-sizing: border-box;
  21.         }
复制代码

效果:

2020-09-24_17-26-23.jpg


如果理解上面两列的,三列一样,平均分成 3 份而已。

一个“坑”在于:
游客,如果您要查看本帖隐藏内容请回复


如果将 .middle 的 float 属性值改为 right,顺序就变了:

2020-09-24_17-23-24.jpg


这里算是一个重点,涉及了代码执行顺序浮动方向的问题。

默认代码按从上至下顺序执行,先执行 .left,然后是 .middle,最后是 .right

分别 float 值为:left、left、right 进行布局。

而如果将 .middle 的 float 改为 right,执行顺序不变:.left 还是左浮动、.middle 右浮动霸占了右边,.right 的右浮只能在其左侧靠右了。

要理解浮动是讲究:

先来后到

继续往下看。


clear 属性

有浮动,就有清除浮动,没错,就是设置 clear 属性。

但是注意了:

clear 是清除设置该属性的元素指定边的浮动效果


简单一段代码:

  1. <!DOCTYPE html>
  2. <html>

  3. <head>
  4.   <meta charset="utf-8">
  5.   <title>清除浮动</title>
  6.   <style type="text/css">
  7.     .box {
  8.       background-color: green;
  9.       width: 200px;
  10.       height: 200px;
  11.     }

  12.     .bc {
  13.       background-color: red;
  14.       width: 50px;
  15.       height: 50px;
  16.     }

  17.     .left {
  18.       float: left;
  19.     }

  20.     .right {
  21.       float: right;
  22.     }

  23.     .clear-left {
  24.       clear: left;
  25.     }

  26.     .clear-right {
  27.       clear: right;
  28.     }
  29.   </style>
  30. </head>

  31. <body>

  32.   <div class="box">
  33.     <div class="bc left"></div>
  34.     <div class="clear-left">我爱鱼C,ilovefishc.com,我爱Web开发,我爱小甲鱼</div>
  35.   </div>

  36.   <br><br>
  37.   <div class="box">
  38.     <div class="bc right"></div>
  39.     <div class="clear-right">我爱鱼C,ilovefishc.com,我爱Web开发,我爱小甲鱼</div>
  40.   </div>

  41. </body>

  42. </html>
复制代码

效果:

2020-09-24_18-35-22.jpg


默认情况下,如果 .bc 设置浮动,下面的 div 元素中的文字就会环绕上去。

现在分别设置清除不同边的浮动,文字都会乖乖的在下面,不会自动环绕上去。

要知道:

设置 float会影响其他相邻元素;

设置 clear 会影响自身,不会对其他相邻元素造成影响

上面这句话要好好体会哦~




课后作业,完成了吗?


传送门






                               
登录/注册后可看大图







如果有收获,别忘了评分


                               
登录/注册后可看大图


这位鱼油,如果喜欢本系列学习笔记,请订阅 淘专辑传送门)(不喜欢更要订阅

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
鱼C-小师妹 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-23 15:29:40 | 显示全部楼层
不懂啊  啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-19 16:02:10 | 显示全部楼层
好棒,谢谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-26 21:28:25 | 显示全部楼层
不错,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-4 09:40:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-13 09:50:16 | 显示全部楼层
存在空格,会换到下一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-5 09:24:05 | 显示全部楼层
代码实现是有先后顺序的,middle的right的会现在页面右侧实现,right的right就只能在中间。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-2 19:57:13 | 显示全部楼层
爱鱼C
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 前天 17:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 23:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表