目标:
响应式CSS圆圈:
1.等半径缩放。
1.半径可以按百分比计算。
- Radius可通过媒体查询进行控制。
- 如果解决方案是JavaScript,我仍然需要模拟媒体查询触发器。我不“需要”媒体查询,但我确实希望能够在特定宽度下按百分比控制半径:*
@media (max-width : 320px)
{
.x2{padding: 50%;}
}
@media (min-width : 321px) and (max-width : 800px)
{
.x2{padding: 25%;}
}
@media (min-width: 801px)
{
.x2{padding: 12.5%;}
}
字符串
以下是我目前拥有的:
<div class="x1">
<div class="x2">
lol dude
</div>
<div class="x2"></div>
<div class="x2"></div>
<div class="x2"></div>
</div>
.x1
{
float:left;
width:100%;
}
.x2
{
display:block;
float:left;
padding: 12.5%; //Currently being used to control radius.
width:auto;
height:auto;
border-radius:50%;
-moz-border-radius:50%;
-webkit-border-radius:50%;
-khtml-border-radius: 50%;
background:#eee;
text-align:center;
}
型
问题:
在此解决方案中,将内容添加到圆时:
- 当缩放超过其可用的填充时,形状会变形。
- 增加半径的大小。
更新:
我已经在这里构建了一个可行的解决方案:响应式CSS循环
4条答案
按热度按时间rseugnpd1#
你不需要
@media
查询。这是我的尝试,纯CSS:字符串
Fiddle
Full Screen的
gwbalxhn2#
短代码
这个解决方案减少了代码大小,但保留了功能。我保留了原始的
.x#
,删除了不需要的.x0
,.x3
和.x6
。所以在最终的解决方案中,您可能会重新编号(但我想让您看看删除了什么)。任何需要不同
top
或left
设置的“分割”圆的片段都需要一个满足或超过.x2 > div
选择器的选择器来覆盖,因此我的一些选择器使用.x2 > .x7
等。(As在下面的评论中注意到,Chrome has bug issues使用了OP在赏金开始时发布的原始技术。这并不能解决这些问题,所以在另一个浏览器中查看以下内容。)
Here's the modified fiddle.
超文本标记语言
字符串
CSS
型
**编辑:根据评论,OP似乎想要更像the control this fiddle offers**的东西(在Chrome中不起作用; OP在编辑时没有回复我,让我知道这是否是所需的功能类型)。
xeufq47z3#
解决方案:
http://jsfiddle.net/WTWrB/
DIV结构:
.x2
中使用overflow:hidden
来溢出子元素的.x3
中的背景颜色。*.x3
内部开始 *字符串
CSS:
型
的数据
j8yoct9x4#
我知道这个解决方案与这里所建议的有很大的不同,但我仍然认为值得提出来。
我使用一个图像作为遮罩来创建圆形,并利用了这样一个事实,即当padding被指定为百分比时,它是基于其父元素的宽度而不是高度计算的。这使我能够创建一个完美的正方形。
圆的比例为1here的演示
HTML代码
字符串
CSS代码
型
根据您的问题here,将上述圆圈细分为多个部分