当前位置: 首页 > 面试题库 >

将图标放置到圆圈中

尹雅健
2023-03-14
问题内容

如何将几个元素放置在另一个元素周围的圆中,并使这些元素也都可单击链接?我希望它看起来像下面的图片,但是我不知道如何实现这种效果。

这有可能吗?


问题答案:

是的,仅使用CSS很有可能而且非常简单。您只需要
清楚要与图像链接的角度即可
(我在末尾添加了一段代码,用于在
您悬停其中一个角度时显示它们)。


演示
您首先需要一个包装器。我将其直径设置为24em(width: 24em; height: 24em;这样做),您可以将其设置为任何所需的直径。你给它
position: relative;。

然后,将带有图像的链接
水平和垂直放置在该包装的中心。你这样做,通过设置position: absolute;,然后top: 50%; left: 50%;与margin: -2em;(其中2em一半的与图像,我已经设置为链接的宽度4em-再次,你可以
改变它到任何你想要的,但不要忘了改利润率这种情况)。

然后,确定要与图像建立链接的角度,然后添加一个类deg{desired_angle}(例如deg0或之类的deg45东西)。然后,对每个这样的类应用链式CSS转换,如下所示:

.deg{desired_angle} {
   transform: rotate({desired_angle}) translate(12em) rotate(-{desired_angle});
}

{desired_angle}用0,替换的地方45,依此类推…

第一个旋转变换使对象及其轴旋转,平移变换沿旋转的X轴平移对象,第二个旋转换将对象带回到位置演示中,以演示其工作原理。

这种方法的优点是它很灵活。您可以以不同角度添加新图像,而无需更改当前结构。

代码片段

    .circle-container {

        position: relative;

        width: 24em;

        height: 24em;

        padding: 2.8em;

        /*2.8em = 2em*1.4 (2em = half the width of a link with img, 1.4 = sqrt(2))*/

        border: dashed 1px;

        border-radius: 50%;

        margin: 1.75em auto 0;

    }

    .circle-container a {

        display: block;

        position: absolute;

        top: 50%; left: 50%;

        width: 4em; height: 4em;

        margin: -2em;

    }

    .circle-container img { display: block; width: 100%; }

    .deg0 { transform: translate(12em); } /* 12em = half the width of the wrapper */

    .deg45 { transform: rotate(45deg) translate(12em) rotate(-45deg); }

    .deg135 { transform: rotate(135deg) translate(12em) rotate(-135deg); }

    .deg180 { transform: translate(-12em); }

    .deg225 { transform: rotate(225deg) translate(12em) rotate(-225deg); }

    .deg315 { transform: rotate(315deg) translate(12em) rotate(-315deg); }


    <div class='circle-container'>

        <a href='#' class='center'><img src='image.jpg'></a>

        <a href='#' class='deg0'><img src='image.jpg'></a>

        <a href='#' class='deg45'><img src='image.jpg'></a>

        <a href='#' class='deg135'><img src='image.jpg'></a>

        <a href='#' class='deg180'><img src='image.jpg'></a>

        <a href='#' class='deg225'><img src='image.jpg'></a>

        <a href='#' class='deg315'><img src='image.jpg'></a>

    </div>

另外,您可以通过使用链接的背景图像而不是使用img标签来进一步简化HTML 。



 类似资料:
  • 问题内容: 如何快速圈出图片? 我的ViewController: 我什么也没做.. 范例:http://www.appcoda.com/ios-programming-circular-image- calayer/ 问题答案: 如果要在扩展上使用 那就是你所需要的。

  • 问题内容: 我在某些项目上使用了超棒的字体,但是我想对 超棒的字体图标做一些事情,我可以像这样轻松地调用一个图标: 是否有可能所有图标始终都带有边框的圆形?事情是这样的,我有一个画面: Using 会产生效果,但问题是图标总是比 旁边的文本或元素大,有解决方案吗? 问题答案: i.fa {

  • 因此,我尝试在图像视图中缩放和平移图像,现在它可以完美地缩放和平移。我面临的问题是,我在图像上添加了圆圈,每当我放大/缩小时,它们总是保持在imageview的相同位置,而图像却在正确地放大/缩小。我想发生的是,圆圈被绑在图像上,这样它们可以放大/缩小,并作为一个整体随着图像一起平移。 我从另一个论坛/帖子中找到了缩放/平移的代码,并对其进行了调整,使其适用于我的代码。事实也确实如此。在setIm

  • 我今天的通知图标有一个奇怪的问题。 我做了什么坏事吗? 这是我的图标图片(刚从这里下载https://material.io/icons/#ic_photo) : http://image.noelshack.com/fichiers/2016/44/1478185219-icon-notification.png 我错过什么了吗? 作为记录,我使用的是SDK 24,目前只创建了hdpi资源文件夹

  • 我正在努力实现如下图所示 我已经设法创建css圈与图标在它,但文字后是不符合Cirlce。

  • Highcharts 饼图 以下实例演示了半圈圆环图。 我们在前面的章节已经了解了 Highcharts 基本配置语法。接下来让我们来看下其他的配置。 配置 series 配置 设置 series 的 type 属性为 pie series.type 描述了数据列类型。默认值为 "line"。配置饼图大小使用 innerSize 属性并设置为innerSize: '50%'。 var serie