-
Notifications
You must be signed in to change notification settings - Fork 329
[注解] [204] 边框内圆角 #33
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
网友 @KeithChou 提问:
你挺细心的,书中的写法确实存在这个问题。 解决思路应该是这样的:我们只要把投影和描边 “缩” 回到元素自身的范围内,那 “边框” 部分就可以响应鼠标的交互了。幸运的是,投影和描边确实都可以做到这一点:
为了证明这个思路是可行的,我特意写了一个 在线 demo。如果你有兴趣,也不妨写一个试试看! |
把box-shadow 和 outline-offset 设置相同的值然后在缩到容器当中确实扩大了点击热点,不过边角外直角还是点击不到..不过这问题不大了。感谢老师的回复。学到知识了。另外我在平行四边形中skew() 也遇到类似的问题,希望老师能抽空解决。感谢老师... |
暂时没有时间细想,你可以尝试用其它方法来实现平行四边形,比如 |
@cssmagic 遇到一个CSS 问题,请问一下,如下图处的圆角如何处理好呢?暂时没有想法,感谢。 |
这种特殊形状用常规的 CSS 方法肯定做不到了。用多个元素来拼,一来不划算,二来很难拼得准。没细看 CSS Shapes 加上 drop-shadow 滤镜能不能做到,你可以尝试一下。如果要考虑兼容性,建议用图片(位图或 SVG)。 |
魔法哥你好 border-radius 50% 为什么是椭圆呢。 能不能详细解释一下呢 |
@MJingv 元素的宽高要是一致的时候在应用 border-radius 50% 的时候才是圆形,宽高不一致的时候就是椭圆 |
现在 outline 也围绕 corner 来了,不再是规则的矩形,那么问题来了,还有没有一种元素的 hack 方法呢?看来是只能两个元素实现了 😕 |
@tianzhich |
哈哈你刚说完,平行四边形那边也提到了 |
Uh oh!
There was an error while loading. Please reload this page.
花絮与注解
第 26 页 · 第四段
此时描边和投影在理论上所占的范围应该是完全一样的,这里所说的 “渲染异常” 指的是投影可能会溢出描边的范围。
出现这种渲染异常的底层原因在于,描边与投影的绘制原理不同:描边是完全规则的矩形,完全对齐像素;而具有扩张效果的投影需要由元素的原始形状扩散而成。
对浏览器来说,前者更像是一种基于光栅的绘图算法,而后者更像是一种矢量算法。因此,在对待非整数像素值时,两者的行为可能存在差别——前者在渲染前会对像素长度值取整,而后者可能会接受非整数的长度值(在计算出矢量路径之后光栅化),从而引发两者之间的渲染误差。
如果浏览器的显示比例处于缩放的情况下,或者显示器是视网膜屏幕(由多个物理像素显示一个逻辑像素的高精度显示设备),又或者元素处于 CSS 动画之中,通常比较容易出现这种渲染误差。
交流与答疑
(暂无)
The text was updated successfully, but these errors were encountered: