【问题标题】:How to make round circle links responsive in css?如何使圆形链接在css中响应?
【发布时间】:2014-10-03 16:31:59
【问题描述】:

我已经为此苦苦挣扎了一段时间。显然使用 % 宽度和高度还不够?

现在我已经固定了 100px 的宽度和高度,边框半径是它的一半,所以它会看起来很圆。行高设置为 100 像素,因此文本将垂直显示在这些圆圈的中间。我不知道如何以另一种方式垂直居中文本...

如何使此菜单具有响应性,使其随着屏幕尺寸的变化而变小?

HTML:

<div id="menu">
 <ul>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
  <li><a href="#">Link</a></li>
</ul> 
</div>

CSS:

#menu ul {list-style-type: none; padding: 0; margin: 0;}
#menu li {display: inline; float: left;}
#menu a {
    display: block;
    width: 100px;
    height: 100px;
    -moz-border-radius: 50px;
    border-radius: 50px;
    border: 1px #a2a2a2 solid;
    text-transform: uppercase;
    text-decoration: none;
    font-size: 1em;
    text-align: center;
    line-height: 100px;
    margin: 5%;
}

【问题讨论】:

  • 了解 @media 类型 css ;)
  • 要垂直对齐您的文本,只需删除您的 display:block; line-height:100px; 并添加 display: table-cell; vertical-align:middle;

标签: css menu css-shapes


【解决方案1】:

如果您想要真正的“响应性”,您可以使用与视口宽度直接相关的vw 单位。

Jsfiddle Demo

支持还不错:CanIUse.com

#menu ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
#menu li {
  display: inline-block;
}
#menu a {
  display: block;
  width: 15vw;
  height: 15vw;
  border-radius: 50%;
  border: 1px #a2a2a2 solid;
  text-transform: uppercase;
  text-decoration: none;
  font-size: 4vw;
  text-align: center;
  line-height: 15vw;
  margin: 5%;
}
<div id="menu">
  <ul>
    <li><a href="#">Link</a>
    </li>
    <li><a href="#">Link</a>
    </li>
    <li><a href="#">Link</a>
    </li>
    <li><a href="#">Link</a>
    </li>
    <li><a href="#">Link</a>
    </li>
  </ul>
</div>

【讨论】:

  • 哇。这正是我想要的方式:)
  • +1 最简单的技术。对于 IE8 支持,可以使用填充技术来保持圆形纵横比,但会很麻烦并且需要更多 HTML 元素
  • 非常好的答案 :) IE 7 和 8 总是很麻烦。
  • 是的...但是 IE9
  • 如何在链接悬停时在圆圈周围添加动画笔触?
猜你喜欢
  • 2015-05-16
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
  • 2012-10-08
  • 1970-01-01
相关资源
最近更新 更多