-
原生CSS+少量JS可实现可靠轻量页面滑动:overflow-x+flex适用于手动滚动场景,需设flex布局、隐藏滚动条;transform+transition适合全屏切换,需transition写在容器上并用transitionend清理;移动端手势须touchstart立即preventDefault、判断位移防误触、touchend惯性补位,并注意passive:false和事件卸载。
-
需用appearance:none及各浏览器伪元素(如::-webkit-slider-thumb)定制样式,进度填充须JS计算百分比并动态更新覆盖层宽度,移动端需加touch-action:manipulation防跳动,accent-color仅快捷设置thumb主色且有兼容限制。
-
list-style-position:inside会使序号被浮动元素遮挡或挤出可视区,因序号渲染在内容盒内而浮动元素脱离文档流;改用outside可快速解决,或通过display:flow-root创建BFC并配合padding-left保留序号空间。
-
实现响应式侧边栏菜单需通过CSS媒体查询和定位控制显示状态。1.HTML结构包含侧边栏与主内容区;2.移动端默认隐藏侧边栏(left:-250px),hover时滑出;3.屏幕≥768px时,侧边栏固定显示,position设为static;4.可选JS添加汉堡按钮控制显隐,提升交互体验。
-
rem精度问题源于基准值过小、换算引入小数及浏览器亚像素舍入三重误差叠加;推荐用20px作基准使常用尺寸转为一位小数rem,避免12px/16px等易产生循环小数的值,并确保postcss-pxtorem的rootValue与实际htmlfont-size严格一致。
-
应给input的直接父容器设position:relative作为absolute提示的定位参照,并用calc(100%+4px)替代top:100%以规避高度计算误差,同时设置width:100%、white-space:normal、z-index:10及opacity过渡隐藏,确保提示稳定显示。
-
Notepad++编辑HTML需三步避坑:①保存编码选“UTF-8无BOM”,否则DOCTYPE前隐含字符致怪异模式;②图片/CSS路径须相对于HTML文件位置,非编辑器路径;③file://协议下必须Ctrl+F5强制刷新,或起本地服务http://localhost:8080。
-
JavaScript类型转换分显式和隐式:显式由开发者调用Number()、String()、Boolean()等控制,隐式由引擎在==、+、!等操作中自动触发;应优先用===、显式转换和类型检查来规避bug。
-
display:none彻底移出渲染流,触发重排;visibility:hidden保留占位仅隐藏内容,触发重绘,且子元素设visible仍可见。
-
JavaScript单页应用路由核心是利用HistoryAPI(pushState/replaceState/popstate)或hash模式实现URL变更不刷新页面,通过监听URL变化匹配路由表并动态渲染视图,主流框架如ReactRouter、VueRouter均基于此原理封装。
-
CSS变量中带空格的字体名必须将引号写入变量值内,如--font-main:"HelveticaNeue",sans-serif;fontshorthand不支持var(),须显式声明font-family。
-
伪元素可用:before,但推荐::before;CSS2旧伪元素单双冒号等效,CSS3新伪元素如::selection、::placeholder必须用双冒号,单冒号会静默失效。
-
0fr是合法且更优的隐藏列方式,因其语义清晰、保留轨道结构、兼容动画和响应式切换;但需配套min-width:0、overflow:hidden及子元素宽度约束才能真正生效。
-
浮动元素在宽度缩小时会“掉行”,因其脱离文档流且不感知容器变化,容器变窄时无法并排则被挤至下一行;需在媒体查询中显式设float:none并清除浮动才能避免布局崩塌。
-
break-after不生效的首要原因是未置于@mediaprint媒体查询中,必须写在打印样式上下文内才有效;其次需确保目标元素为块级、父容器无overflow:hidden或transform等干扰属性。