HTML搭好台,CSS属性大全来救场——前端萌新的生存口粮
- HTML搭好台,CSS属性大全来救场——前端萌新的生存口粮
- div不是弟弟威,HTML先给你搭个破草台
- 盒模型:外边距塌陷,内边距撑爆,人生也如此
- margin 塌陷:兄弟并肩,父子反目
- border-radius 不只会圆角,它还会画心画气球画小恐龙
- 布局重灾区:float 老炮儿该退休了
- flex:不止会居中,它还会换行、自动分配、space-between 骗赞
- grid:两行代码瀑布流,同事直呼你开挂
- 颜色字体排版:别让“微软雅黑”毁了你整段人生
- line-height:数字、百分比、固定值,差之毫厘,吐血三升
- 响应式:媒体查询不是背 768、1024,是理解“断点”
- 动效三剑客:transform、transition、animation,别一上来就 3D 旋转
- z-index 失效?层叠上下文把你按在地上摩擦
- 权重!important 是最后一颗核弹,别轻易拉引线
- 野路子调试技巧:outline 比 border 香,currentColor 是变色龙
- 彩蛋:用 CSS 画一个像素小恐龙,送给当年断网的你
HTML搭好台,CSS属性大全来救场——前端萌新的生存口粮
友情提示:本文自带大量口水+代码,阅读时请自备瓜子,键盘,以及一颗被居中折磨过的心脏。
div不是弟弟威,HTML先给你搭个破草台
我当年第一次写页面,把<div>敲成<dvi>,浏览器愣是没报错,就是啥也不显示,我还以为是电脑坏了。后来才知道,这玩意儿就是个“盒子”,装文本、装图片、装老板的需求,也装你的眼泪。
先别急着把页面整得花里胡哨,骨架得先稳。HTML 负责搭台,CSS 负责灯光舞美,JS 才是后面蹦迪的 DJ。台子搭歪了,后面再炫技也是危房。
<!-- 最朴素的台子,别嫌弃它丑 --><!doctypehtml><htmllang="zh-CN"><head><metacharset="utf-8"/><title>我的破草台</title><!-- 把 CSS 挂上去,不然裸奔 --><linkrel="stylesheet"href="style.css"/></head><body><headerclass="topbar">头顶一条杠</header><mainclass="stage"><divclass="box">我是盒子精</div></main><footerclass="footer">脚底一条杠</footer></body></html>上面这段代码,别看它短,五脏俱全。lang="zh-CN"别忘了, Lighthouse 会因为你少写它扣你分,老板会因为你少写它扣你绩效。
盒模型:外边距塌陷,内边距撑爆,人生也如此
盒模型这东西,面试必问,bug 常驻。看图都懂,一写就废。
/* 先给所有盒子统一盒模型,别问为什么,问就是血泪 */*{box-sizing:border-box;}.box{width:300px;padding:20px;border:5px solid #ff4d4f;margin:30px auto;background:#fffbe6;}box-sizing: border-box;是前端界的藿香正气水,谁用谁知道。没有它,width: 300px再加上padding直接给你撑成 340,再瞄一眼设计稿,哦豁,对不上,设计师要跟你拼命。
margin 塌陷:兄弟并肩,父子反目
<divclass="dad"><divclass="son">我掉下去了</div></div>.dad{background:#91d5ff;/* 爹没上 padding,儿子 margin-top 会带着爹一起飞 */}.son{margin-top:30px;background:#ffd666;}效果:父子一起下移 30px,爹没撑开。解决思路简单粗暴:
- 给爹加
padding-top: 0.1px;(别笑,真有用) - 给爹加
overflow: hidden;(BFC 了解一下) - 爹别裸着,穿个
border也行
.dad{overflow:hidden;/* BFC 魔法 */}border-radius 不只会圆角,它还会画心画气球画小恐龙
别再把border-radius当成“圆角工具人”,人家是隐藏的插画师。
/* 一颗非主流的心 */.heart{position:relative;width:100px;height:90px;margin:50px auto;transform:rotate(-45deg);background:#ff4d4f;}.heart::before, .heart::after{content:"";position:absolute;width:100px;height:90px;background:#ff4d4f;border-radius:50px 50px 0 0;}.heart::before{left:50px;transform:rotate(-45deg);transform-origin:0 100%;}.heart::after{top:-50px;transform:rotate(45deg);transform-origin:100% 100%;}<divclass="heart"></div>复制粘贴,打开浏览器,一颗红彤彤的心就跳出来了。拿去哄女朋友,比console.log("❤️")强多了。
布局重灾区:float 老炮儿该退休了
还在用float: left做导航?醒醒,IE6 都进博物馆了。现代布局三剑客:flex、grid、以及“不写代码让后端返 HTML”——当然第三个是做梦。
flex:不止会居中,它还会换行、自动分配、space-between 骗赞
.nav{display:flex;justify-content:space-between;/* 左右贴边,中间留白 */align-items:center;/* 垂直居中,再也不用 line-height 跟 height 斗智斗勇 */flex-wrap:wrap;/* 窗口小了自动换行,别挤爆 */gap:10px;/* 间隙一步到位,不用再 margin-right 最后一个 */}<navclass="nav"><ahref="#">首页</a><ahref="#">文章</a><ahref="#">关于</a><ahref="#">联系</a></nav>多行对齐?align-content: center;了解一下。 flex:1 让子元素抢剩余空间,比width: 70%这种硬编码香多了。
grid:两行代码瀑布流,同事直呼你开挂
.waterfall{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:15px;}<sectionclass="waterfall"><divclass="card">1</div><divclass="card">2</div><divclass="card">3</div><!-- 写 100 个也能自动排 --></section>auto-fill自动填充,minmax把宽度锁在 220~1fr 之间,浏览器自己算列数。别再column-count还要算断点了,grid 一把梭。
颜色字体排版:别让“微软雅黑”毁了你整段人生
color与background-color傻傻分不清?一个管字,一个管底,写反了就是红底红字,老板以为你给他看空白页。
/* 字体栈写得比高考作文还认真 */body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji";/* 先苹果,再微软,最后回退到无衬线,emoji 也别落下 */line-height:1.6;/* 1.5 太紧凑,1.6 呼吸感刚好 */color:#262626;/* 纯黑刺眼,深灰护眼 */background-color:#fafafa;/* 给眼睛一条活路 */}line-height:数字、百分比、固定值,差之毫厘,吐血三升
.a{line-height:1.5;/* 字号 20px 时 = 30px */}.b{line-height:150%;/* 继承给子元素时,按父元素字号计算,子元素再大也 30px,直接翻车 */}记口诀:数字跟随字号走,百分比坑死继承狗。
响应式:媒体查询不是背 768、1024,是理解“断点”
/* 移动端优先, progressively enhance */.card{padding:12px;font-size:14px;}@media(min-width:600px){.card{padding:20px;font-size:16px;}}@media(min-width:1024px){.card{padding:24px;font-size:18px;}}别问为什么是 600 而不是 768,设计稿的侧边栏在 600 就塌了,那就 600。断点跟着内容走,不是跟着苹果官网走。
动效三剑客:transform、transition、animation,别一上来就 3D 旋转
/* 最简单的淡入,面试说出来就加分 */.btn{opacity:0.8;transition:opacity 0.3s ease;}.btn:hover{opacity:1;}/* 再来个心跳 */@keyframesheartbeat{0%{transform:scale(1);}50%{transform:scale(1.1);}100%{transform:scale(1);}}.heart{animation:heartbeat 1s infinite;}记住:动效别乱加,用户不是来蹦迪。transition最多 300ms,animation循环别超过两次,除非你想让产品经理的心跳也跟着无限循环。
z-index 失效?层叠上下文把你按在地上摩擦
/* 爸爸层叠上下文 */.dad{position:relative;z-index:999;}/* 儿子再高能高到哪去 */.son{position:absolute;z-index:9999;/* 没用,爹的层级封顶了 */}触发层叠上下文的方式多到离谱:opacity 不为 1、transform 不是 none、flex 容器……排查口诀:z-index 不生效,先问爹是谁。
权重!important 是最后一颗核弹,别轻易拉引线
#app .title{color:red;}.title{color:blue!important;/* 拉核弹,同归于尽 */}!important一用,后面维护的兄弟想改样式只能再加!important,最后全员核平。能不用就不用,提升权重正确姿势:增加类名、利用层级、或者干脆重构。
野路子调试技巧:outline 比 border 香,currentColor 是变色龙
/* 调试布局,outline 不占地儿 */*{outline:1px solid #ff4d4f;}/* currentColor 自动跟字体颜色走 */.icon{fill:currentColor;/* svg 图标随父级 color 变色,一行代码少写十个类 */}/* clamp() 做自适应字体,三值语法:最小,首选,最大 */html{font-size:clamp(14px,2.5vw,20px);}clamp()一行顶三行媒体查询,老浏览器?加postcss-clamp转一下,照样跑得欢。
彩蛋:用 CSS 画一个像素小恐龙,送给当年断网的你
<divclass="dino"></div>.dino{width:40px;height:40px;background:#00d924;box-shadow:0 0 0 10px #fff,0 10px 0 0 #00d924,10px 10px 0 0 #00d924,20px 10px 0 0 #00d924,30px 10px 0 0 #00d924,10px 20px 0 0 #00d924,20px 20px 0 0 #00d924,30px 20px 0 0 #00d924,40px 20px 0 0 #00d924,10px 30px 0 0 #00d924,30px 30px 0 0 #00d924;}打开浏览器,一只断网小恐龙蹦蹦跳跳。别怕,这次有网,咱们把 CSS 属性全啃完,以后就再也不用“弟弟威”了。
写到这儿,我键盘已经冒烟,你那边浏览器也别闲着——把上面代码全 copy 一遍,跑一跑,改一改,bug 出来了,成长就来了。CSS 的属性千千万,记不住没关系,先收藏,再实践,半夜被居中折磨的时候,记得回来翻这篇老黄历,准能救你狗命。
欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
推荐:DTcode7的博客首页。
一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身农奴把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟!
| 专栏系列(点击解锁) | 学习路线(点击解锁) | 知识定位 |
|---|---|---|
| 《微信小程序相关博客》 | 持续更新中~ | 结合微信官方原生框架、uniapp等小程序框架,记录请求、封装、tabbar、UI组件的学习记录和使用技巧等 |
| 《AIGC相关博客》 | 持续更新中~ | AIGC、AI生产力工具的介绍,例如stable diffusion这种的AI绘画工具安装、使用、技巧等总结 |
| 《HTML网站开发相关》 | 《前端基础入门三大核心之html相关博客》 | 前端基础入门三大核心之html板块的内容,入坑前端或者辅助学习的必看知识 |
| 《前端基础入门三大核心之JS相关博客》 | 前端JS是JavaScript语言在网页开发中的应用,负责实现交互效果和动态内容。它与HTML和CSS并称前端三剑客,共同构建用户界面。 通过操作DOM元素、响应事件、发起网络请求等,JS使页面能够响应用户行为,实现数据动态展示和页面流畅跳转,是现代Web开发的核心 | |
| 《前端基础入门三大核心之CSS相关博客》 | 介绍前端开发中遇到的CSS疑问和各种奇妙的CSS语法,同时收集精美的CSS效果代码,用来丰富你的web网页 | |
| 《canvas绘图相关博客》 | Canvas是HTML5中用于绘制图形的元素,通过JavaScript及其提供的绘图API,开发者可以在网页上绘制出各种复杂的图形、动画和图像效果。Canvas提供了高度的灵活性和控制力,使得前端绘图技术更加丰富和多样化 | |
| 《Vue实战相关博客》 | 持续更新中~ | 详细总结了常用UI库elementUI的使用技巧以及Vue的学习之旅 |
| 《python相关博客》 | 持续更新中~ | Python,简洁易学的编程语言,强大到足以应对各种应用场景,是编程新手的理想选择,也是专业人士的得力工具 |
| 《sql数据库相关博客》 | 持续更新中~ | SQL数据库:高效管理数据的利器,学会SQL,轻松驾驭结构化数据,解锁数据分析与挖掘的无限可能 |
| 《算法系列相关博客》 | 持续更新中~ | 算法与数据结构学习总结,通过JS来编写处理复杂有趣的算法问题,提升你的技术思维 |
| 《IT信息技术相关博客》 | 持续更新中~ | 作为信息化人员所需要掌握的底层技术,涉及软件开发、网络建设、系统维护等领域的知识 |
| 《信息化人员基础技能知识相关博客》 | 无论你是开发、产品、实施、经理,只要是从事信息化相关行业的人员,都应该掌握这些信息化的基础知识,可以不精通但是一定要了解,避免日常工作中贻笑大方 | |
| 《信息化技能面试宝典相关博客》 | 涉及信息化相关工作基础知识和面试技巧,提升自我能力与面试通过率,扩展知识面 | |
| 《前端开发习惯与小技巧相关博客》 | 持续更新中~ | 罗列常用的开发工具使用技巧,如 Vscode快捷键操作、Git、CMD、游览器控制台等 |
| 《photoshop相关博客》 | 持续更新中~ | 基础的PS学习记录,含括PPI与DPI、物理像素dp、逻辑像素dip、矢量图和位图以及帧动画等的学习总结 |
| 日常开发&办公&生产【实用工具】分享相关博客》 | 持续更新中~ | 分享介绍各种开发中、工作中、个人生产以及学习上的工具,丰富阅历,给大家提供处理事情的更多角度,学习了解更多的便利工具,如Fiddler抓包、办公快捷键、虚拟机VMware等工具 |
吾辈才疏学浅,摹写之作,恐有瑕疵。望诸君海涵赐教。望轻喷,嘤嘤嘤
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。愿斯文对汝有所裨益,纵其简陋未及渊博,亦足以略尽绵薄之力。倘若尚存阙漏,敬请不吝斧正,俾便精进!