惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Register - Security
The Register - Security
云风的 BLOG
云风的 BLOG
U
Unit 42
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
D
Docker
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Secure Thoughts
Hacker News: Ask HN
Hacker News: Ask HN
Vercel News
Vercel News
S
Security @ Cisco Blogs
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
I
Intezer
MongoDB | Blog
MongoDB | Blog
AI
AI
MyScale Blog
MyScale Blog
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
W
WeLiveSecurity
博客园 - 叶小钗
S
SegmentFault 最新的问题
N
News | PayPal Newsroom
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
DataBreaches.Net
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
Spread Privacy
Spread Privacy
H
Help Net Security
美团技术团队
博客园 - 司徒正美
T
Threat Research - Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
Kaspersky official blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Vulnerabilities – Threatpost
TaoSecurity Blog
TaoSecurity Blog
N
Netflix TechBlog - Medium
L
Lohrmann on Cybersecurity
J
Java Code Geeks
量子位
Martin Fowler
Martin Fowler
博客园_首页

一颗小树

周更的第 100 篇 改变阅读方式 宝贵的人生建议 小树的工具库 2023 读《重构》有感 仅需 10 分钟,用 GPTs 实现文章总结助手 高质量的需求交付 产品始于问题,而不是解决方案 如何更好地休息 最优解人生 与体重斗,其乐无穷 结构化 prompt = 数字员工? 持续创作的法门 如何降低知识焦虑 7 月思维碎片 N 倍生产力提升:我的 AI 助理 Indie Hacker,互联网打工人的下一个出路? 如何成就伟大事业 夏日碎片 小报编辑的自我修养 一颗小树 #49 投入真实生活 一颗小树 #48 过年杂记 一颗小树 #47 我的人生信念(2023) 一颗小树 #46 回本就卖 一颗小树 #45 规划和落地 小树的 2022 年终总结 一颗小树 #44 构建高质量信源 一颗小树 #43 我的 2022 书单 一颗小树 #42 阳了怎么办 一颗小树 #41 一人企业 一颗小树 #40 非必要别正常啦 一颗小树 #39 阅读和创造 一颗小树 #38 疫情生活碎片 一颗小树 #37 基于多维表格的可转债投资系统 一颗小树 #36 飞盘初体验 一颗小树 #35 雁栖湖半日游 一颗小树 #34 初探多维表格 一颗小树 #33 回不去的名字叫家乡 一颗小树 #32 生活需要留白 一颗小树 #31 Figma 的成功之道 一颗小树 #30 拓宽自己 拥抱善意 一颗小树 #29 有关下雨的记忆 一颗小树 #28 隐入尘烟 一颗小树 #27 找到并坚持自己的热爱 一颗小树 #26 好产品的“差”改版 一颗小树 #25 吹吹南澳岛的海风 一颗小树 #24 代码重构的一点心得 一颗小树 #23 和团队新同学的对话 一颗小树 #22 从《干法》中学到的 一颗小树 #21 阿里四年我的收获和感想 一颗小树 #20 周更半年我学到的事 一颗小树 #19 慢慢来比较快 一颗小树 #18 只规划每天最重要的三件事 一颗小树 #17 裁员潮下的反思 一颗小树 #16 纪录片的力量在于真实 一颗小树 #15 世界很小但很好 一颗小树 #14 让自己成为问题的终结者 一颗小树 #13 别忘记你的热爱 一颗小树 #12 聊聊写作这件事 一颗小树 #11 开始投资前更重要的事 一颗小树 #10 疫情囤货指南 一颗小树 #9 疫情之下 重建内心的秩序 一颗小树 #8 不要倒在黎明前 一颗小树 #7 从小孩子身上学到的事 一颗小树 #6 和自己的产品一起成长 一颗小树 #5 技术对生产力的的变革是不可阻挡的 一颗小树 #4 暴风雨的意义 一颗小树 #3 投资成功,是我们变成一个更好的人之后自然的结果 一颗小树 #2 持续学习来应对这个复杂多变的世界 一颗小树 #1 任天堂和上岭村 一颗小树 #0 这是写给你们的第一封信 游戏改变世界 把自己给开源了 构建自己的不为清单 有爱和被爱 做了一点微小的工作 小树的 2021 年终总结 小树的 2020 年终总结 与其感慨路难行,不如马上出发 阿里前端也切图?不,人工智能帮你做 如何写好简历,拿到大厂 offer 的敲门砖 任时光匆匆流去 | 2019 年终总结 聊聊在阿里远程办公那点事儿 在 D2 做主持人是怎样一种体验? 提高工作效率的几个方法 有限状态机在 CSS 动画中的应用 「译」React 项目结构和组件命名之道 编写小而美函数的艺术 使用纯粹的JS构建 Web Component 翻译计划-状态管理请三思 利用Dawn工程化工具实践MobX数据流管理方案 高性能 MobX 模式(part 3)- 用例教程 高性能 MobX 模式(part 2)- 响应变化 技术文章写法浅谈 翻译计划-用node.js开发一个可交互的命令行应用 无他,唯手熟尔-前端实习面试题篇 工欲善其事必先利其器-前端实习简历篇 手把手带你用原生js实现css属性的set和get 我们来翻翻元素样式的族谱-getComputedStyle 翻译计划-从sass到PostCSS
经典三栏布局
也树 · 2016-05-18 · via 一颗小树

双飞翼布局和圣杯布局。

作者:Icarus 原文链接:经典三栏布局

双飞翼布局

在研究负边距时发现始于淘宝 UED 的双飞翼布局,其中主列优先加载的思想很有借鉴意义,故自己尝试实现。

双飞翼布局实现效果

左右宽度固定,中间主体部分自适应

双飞翼布局的优点

  • 布局调整方便
  • 主要内容优先加载
  • 兼容包括 IE6 在内的主流浏览器

具体说明:

一般情况下,左中右三列布局时我的做法是

<div class="left"></div>
<div class="center"></div>
<div class="right"></div>

分别设置好宽度和边距即可。

但是对于双飞翼布局来说,三列布局是这样实现。

<div class="center"></div>
<div class="left"></div>
<div class="right"></div>

可以实现优先渲染主列的目的。

html 结构:

<div class = "container">
	<div class="center col">
		<div class="main"></div>
	</div>
	<div class="left col"></div>
	<div class="right col"></div>
</div>

首先让这三列浮动起来

.col{
	float: left;
}

设置 center 部分宽度为 100%,即屏幕的整个宽度。

.container{
	width: 100%;
}
.center{
	width: 100%;
}

设置 left 部分宽度,利用负边距覆盖在 center 部分之上且居左。

.left{
	margin-left: -100%;
	width: 300px;
}

设置 right 部分宽度,利用负边距覆盖在 center 部分智商且居右。

.right{
	margin-left: -200px;
	width: 200px;
}

此时如果加上背景色已经可以看出三列布局,但是此时 center 也就是主体部分被两边遮住了,这个时候 main 就派上了用场。

.main{
	margin-left: 310px;
	margin-right: 210px;
}

这个时候就实现了左右宽度固定,中间部分自适应且优先加载的双飞翼布局。 完整源码:

html

<div class = "container">
	<div class="center col">
		<div class="main">这是一行字</div>
	</div>
	<div class="left col">这是一行字</div>
	<div class="right col">这是一行字</div>
</div>

css

*{
	margin: 0;
	padding: 0;
}
body{
	color: red;
	text-align: center;
	font-weight: bold;
}
.container{
	width: 100%;
}
.col{
	float: left;
}
.center{
	width: 100%;
	min-height: 500px;
	background: #000;
}
.main{
	margin-left: 310px;
	margin-right: 210px;
	min-height: 500px;
}
.left{
	/*利用负边距覆盖在center上且居左*/
	margin-left: -100%;
	width: 300px;
	min-height: 500px;
	background: blue;
}
.right{
	margin-left: -200px;
	min-height: 500px;
	width: 200px;
	background: yellow;
}

圣杯布局

在双飞翼布局之前,Kevin Cornell 提出了圣杯布局,同样可以实现中间列自适应且优先加载的布局。

和双飞翼布局最大的不同是,其将中间三列放在一个 div 中,为此 div 设置 padding,从而为左右两列腾出位置,而左右两列除了需要利用负边距实现定位外,还需要利用相对定位消除 IE6 中的 BUG。

圣杯布局在实现时需要 6 个 css 属性,而双飞翼只需要 4 个,更简洁,更优雅。

两种布局的初衷都是在实现正常需求的情况下达到兼容,随着时间发展,慢慢已经不再需要兼容 IE6,甚至 IE7/8.

技术是一份财富,永远不会随时间褪色。

完整源码:

html

<div id="bd">
	<div class="main">main</div>
	<div class="sub">sub</div>
	<div class="extra">extra</div>
</div>

css

.main {
	float: left;
	width: 100%;
	background:#39c;
	height:300px;
}
.sub {
	float: left;
	width: 190px;
	margin-left: -100%;
	background:#f60;
	height:300px;
	position:relative;
	left:-190px;
}
.extra {
	float: left;
	width: 230px;
	margin-left: -230px;
	background:#666;
	height:300px;
	position:relative;
	right:-230px;
}
#bd {
	padding: 0 230px 0 190px;
}