inline什么意思|行内元素,内容跟着文本并排排布
改页面排版卡了整整一下午,到处翻文档搜inline什么意思,盯着浏览器预览页反复按F5刷新,刚开始笼统的把inline、block两种布局属性归成同类用法,胡乱的改标签内的display参数,页面瞬间崩的乱七八糟,侧边介绍栏直接穿插在正文短句中间,明明提前给模块填好了固定宽高数值,页面渲染的时候尺寸半点不受代码控制,盯着错位的界面越改心绪越发浮躁,手边水杯推来推去,半天找不到问题的根源。
宽高设置,从来没用。
那天工位旁边的前辈路过瞟了一眼屏幕,随手在css的display字段后面替换了属性数值,原本独占一整行的商品标价小字立刻收拢在商品名称的侧边位置,之前在各类零散教程里摘抄的知识点大半都是宽泛的文字描述,没有标注落地调试时的硬性约束,就是照搬网页上复制来的代码片段,把原本的块状div标签强行赋予inline属性之后,所有提前设定好的外边距、数十像素的固定宽高全部直接失效,连着修改二十多条样式规则,刷新预览界面始终没有出现符合设计稿的变化,越调试心里越烦闷,手边摊开的纸质草稿纸上密密麻麻划满被作废的参数写法,连标注的注释都被自己反复涂改成一团黑痕。
试过临时替换成block属性,元素倒是能够自由调控长宽尺寸,可整体排版又变成单个模块独占整行的样式,完全达不到设计稿里图标紧贴文字得排版需求,反复在两种属性之间来回切换调试,白白耗掉近两个钟头的工作时长,其实那会儿只记住了属性名称的拼写,根本没吃透浏览器原生渲染逻辑对inline元素自带的限制规则,网上碎片化的讲解看得越多,越容易混淆不同布局值的使用边界。
偶然翻出去年存放在硬盘文件夹里的前端笔记,文档边角随手标注着零散内容,写明inline元素依托文本流进行排布,上下方向的外边距没办法精准设置像素大小,只有左右侧间距能依靠内边距微调控制,潦草的手写批注还在关键字下方画了横线,当初保存完这份笔记就随手搁置在角落,在遇到这次排版故障之前再也没有点开翻阅过。
午休时看见隔壁实习生复刻一模一样的商品详情页面,对方直接选用inline-block完成图标和文字的并排布局,既能保持同行排版又能自定义元素尺寸,盯着对方运行正常的页面愣了许久,折腾好久才搞明白,inline、block、inline-block三者各有适用范围,不存在随便套用就能适配所有页面的万能写法。
就是前阵子赶节日活动专题页的时候,索性不再强行给大块容器添加inline样式,改用span这类原生行内标签搭配少量内边距代码,之前错乱杂乱的页面布局只用半天就理顺了大半,不用再无休止的改动宽高参数。
上周线上出现一处细小的展示bug,测试反馈操作按钮紧紧贴在正文文字的缝隙当中,顺着提交记录溯源代码,才发现是前一晚赶工的同事误给外层块状容器加上display:inline,整块容器直接失去独占单行的属性,内部所有组件全都拥挤在同一行,撤回这条属性修改之后,页面异常当场修复完毕。
收拾桌面的时候,把写满错误代码的草稿揉成团丢进桌下垃圾桶,转头点开浏览器里尘封许久的收藏夹。