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

推荐订阅源

V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
Netflix TechBlog - Medium
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
V
V2EX
IT之家
IT之家
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
D
Docker
S
Secure Thoughts
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
博客园_首页
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Security Archives - TechRepublic
Security Archives - TechRepublic
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News | PayPal Newsroom
S
Security @ Cisco Blogs
I
InfoQ
Last Week in AI
Last Week in AI
SecWiki News
SecWiki News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
W
WeLiveSecurity
T
Troy Hunt's Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Attack and Defense Labs
Attack and Defense Labs
美团技术团队
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
B
Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Scott Helme
Scott Helme
T
Tor Project blog
Know Your Adversary
Know Your Adversary
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
Recorded Future
Recorded Future
C
Cyber Attacks, Cyber Crime and Cyber Security
AI
AI
G
Google Developers Blog

一颗小树

周更的第 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-11-01 · via 一颗小树

两栏布局在实际项目中可谓屡见不鲜,故加以总结,也方便日后查阅。

原文链接:https://xdlrt.github.io/2016/11/01/2016-11-01

先上效果图,左右两栏,间距 20px img-1

流式布局

<div class="warp clearfix">
	<div class="left"></div>
	<div class="right"></div>
</div>
<style>
	/* 清除浮动 */
	.clearfix:after{
		content: "";
		display: block;
		height: 0;
		visibility: hidden;
		clear: both;
	}
	.warp{
		margin: 0 auto;
		width: 960px;
		height: 300px;
	}
	.left,.right{
		/* 左右两部分设置浮动 */
		float: left;
		height: 100%;
	}
	.left{
		margin-right: 20px;
		width: 220px;
		background: #F14C5C;
	}
	.right{
		width: 720px;
		background: #F5A623;
	}
</style>

该方法优点是结构和实现简单,但是左右两部分需要定宽,对响应式十分不友好。我们来加以改造,实现侧边栏定宽主要内容区域自适应。

负边距配合流式布局

首先我们需要对 html 结构加以改造,需要在主体内容的外层加一层盒子,外层的这个盒子需要宽度和最外层 warp 相等,其中主体内容设置左边距,再利用负边距来将侧边栏移到空出的位置。

<div class="warp clearfix">
	<div class="main-warp">
		<div class="right"></div>
	</div>
	<div class="left"></div>
</div>
<style>
	/* 清除浮动 */
	.clearfix:after{
		content: "";
		display: block;
		height: 0;
		visibility: hidden;
		clear: both;
	}
	.warp{
		margin: 0 auto;
		width: 960px;
		height: 300px;
	}
	.main-warp,.left,.right{
		height: 100%;
	}
	.main-warp{
		/* 这两行是关键 */
		float: left;
		width: 100%;
	}
	.left{
		float: left;
		/* 使负margin值和warp的宽度相等 */
		margin-left: -100%;
		width: 220px;
		background: #F14C5C;
	}
	.right{
		/* 侧边栏宽度+间距 */
		margin-left: 240px;
		background: #F5A623;
	}
</style>

这样的布局好处是更灵活,主体内容部分在最外层宽度变化后可以自适应宽度的改变。除了浮动还有没有方法能够实现侧边栏定宽,主体内容自适应呢?那就需要用到定位的知识了。

绝对定位

<style>
	.warp{
		/* 父元素设置相对定位 */
		position: relative;
		margin: 0 auto;
		width: 960px;
		height: 300px;
	}
	.main-warp,.left,.right{
		height: 100%;
	}
	.main-warp{
		width: 100%;
	}
	.left{
		/* 绝对定位在最左侧 */
		position: absolute;
		top: 0;
		left: 0;
		width: 220px;
		background: #F14C5C;
	}
	.right{
		/* 左边距设置为侧边栏宽度+边距 */
		margin-left: 240px;
		background: #F5A623;
	}
</style>
<div class="warp clearfix">
	<div class="main-warp">
		<div class="right"></div>
	</div>
	<div class="left"></div>
</div>

绝对定位的方法和负边距法非常类似,都是利用主体内容的左边距来为侧边栏空出位置,从而将侧边栏填入。

最后介绍一种不太常规的 inline-block 方法,如果不需要考虑 IE9 以下的浏览器,可以尝试使用一下。但是需要解决带来的额外边距问题,具体解决办法可以查阅张鑫旭大大这篇博客去除 inline-block 元素间间距的 N 种方法

display:inline-block

<style>
	.warp{
		margin: 0 auto;
		width: 960px;
		height: 300px;
	}
	.left,.main-warp{
		display: inline-block;
		height: 100%;
	}
	.left{
		width: 220px;
		background: #F14C5C;
	}
	.right{
		margin-left: 20px;
		width: 720px;
		height: 100%;
		background: #F5A623;
	}
</style>
<div class="warp clearfix">
	<div class="left"></div><!--
	--><div class="main-warp">
		<div class="right"></div>
	</div>
</div>

以上就是一些常见的两栏布局方式,使用时根据具体需求灵活选用即可。