border-radius没效果最常见原因:值写错(如负数、0)、单位遗漏、父容器overflow:hidden裁剪圆角;元素无边框或背景导致不可见;宽高不等时50%呈椭圆误判失效。
直接说结论:用 border-radius 就行,但值写错、单位漏掉、或父元素溢出隐藏没关,圆角就“看不见”。
border-radius 没效果?最常见三个原因:
border)或背景(background),圆角只作用于“可渲染的边界”,纯透明容器看不出来overflow: hidden,但子元素圆角超出父级尺寸——实际圆角存在,只是被裁掉了50%)但宽高不相等,结果不是正圆而是椭圆,误以为“失效”border-radius 的四种写法和适用场景它支持单值、双值、四值甚至八值写法,关键看你要控制哪几个角:
border-radius: 8px —— 四个角统一设为 8px 圆角(最常用)border-radius: 4px 8px —— 水平方向 4px,垂直方向 8px(左上/右下用 4px,右上/左下用 8px)border-radius: 4px 8px 12px 16px —— 顺时针:左上、右上、右下、左下border-radius: 4px / 8px —— 椭圆写法:横轴半径 4px,纵轴半径 8px(注意斜杠)overflow: hidden 一起用时的坑给图片加圆角常这么写:img { border-radius: 50%; overflow: hidden; },但其实 overflow: hidden 对 <img> 标签无效(HTML 规范限制),必须包一层容器:
立即学习“前端免费学习笔记(深入)”;
<div style="border-radius: 50%; overflow: hidden;"> <img src="avatar.jpg" style="display: block; width: 100%;"></div>
否则圆角会被图片原始矩形边缘“撑破”。另外,border-radius 不会改变元素的盒模型尺寸,但会影响点击热区和阴影范围。
IE9+、所有现代浏览器都支持 border-radius,无需前缀;但要注意:
border-radius 在低端安卓 WebView 中可能卡顿,建议用 transform 替代动态圆角50% 做圆形头像时,务必保证宽高等值,否则变成鸭蛋形<input type="text">)上,部分浏览器会忽略,需配合 appearance: none 重置样式圆角看着简单,真正要稳,得盯住容器关系、尺寸约束和渲染上下文——尤其是嵌套结构里,多一层包裹就多一个溢出控制点。