html - 将 12 个图像排列成 12 小时制

标签 html css position css-shapes

需要明确的是:我并不是想制作一个时钟,我只是想要每小时位置的 12 个图像

对,所以我想创建一个包含 12 个(圆形)图标的 div,每个图标的位置与 12 小时时钟相同,如下所示:

enter image description here

到目前为止,我正在玩,但没有得到很好的结果。到目前为止,我只尝试过“12”“3”“6”“9”位置,但它们无法正确居中,margin:auto 0;他们刚刚出发。

有没有更简单、更简洁的方法来做到这一点?

<强> FIDDLE

最佳答案

为了更轻松且不必定位每个图像,您可以在灰色背景中水平居中制作 12 个高度为 50% 的嵌套 div。然后,您需要将每个旋转 30 度(因为 360/12 = 30)。

由于 div 都是嵌套的,因此子 div 将比其父级多旋转 30 度,并自动定位在正确的位置:

<强> DEMO

.clock{
    position:relative;
    width:80%;
    padding-bottom:80%;
    margin:0 auto;
    background:lightgrey;
    overflow:hidden;
}

.clock div{
    height:100%;
    width:100%;
    
    -webkit-transform-origin: 50% 100%;
    transform-origin: 50% 100%;
    
    -webkit-transform: rotate(30deg);
    transform: rotate(30deg);
}
.clock > div{
    position:absolute;
    width:5%; height:50%;
    top:0; left: 47.5%;
}
.clock div img{
    position:absolute;
    top:0;left:0;
    width:100%; height:auto;    
}
<div class="clock">
    <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
        <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
            <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
                <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
                    <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
                        <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
                            <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
                                <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
                                    <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
                                        <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
                                            <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/>
                                                <div><img src="http://www.clker.com/cliparts/W/i/K/w/1/D/glossy-orange-circle-icon-hi.png"/></div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

关于html - 将 12 个图像排列成 12 小时制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25976026/

相关文章:

html - Markdown 段落之间三个省略号

html - 应用程序的云同步服务

html - CSS - 将鼠标悬停在主菜单或子菜单上时保持子菜单可见

javascript - 如何使用 CSS/Sass 在字符串中的 ","之后添加空格

html - CSS 图像每次都在文本下方

javascript - 在选择菜单中禁用第 n 个子项

html - <li> 内图像轮播的居中和垂直对齐图像

html - 重置高度 : auto on img element

javascript - ChartJS 工具提示位置/放置

android - imageview 位置设置像这个图像