html - 文本没有在中间对齐
问题描述
我想重新创建这样的东西:
然后我会将它用于社交媒体和外部网站 :) 这就是我能想到的:
如您所见,这里有两个问题:
- 图片不适合div。
- 正文不在中间。
我想如果我可以将文本对齐到中心,图片也会自动适应,但我似乎无法做到。
这是我写的代码:
.child {
height: 250px;
margin: 20px;
}
.external-links {
display: table-cell;
background: #ccc;
vertical-align: middle;
text-align: center;
border-radius: 32px;
color: black;
text-decoration: none;
padding: 1px;
}
<div class="child">
<a class="external-links" href="https://github.com/amirashabani" target="_blank">
<img src="{% static 'app/images/icons/github.ico' %}">
<span>github</span>
</a>
<a class="external-links" href="https://twitter.com/amirashabani" target="_blank">
<img src="{% static 'app/images/icons/twitter.ico' %}">
<span>twitter</span>
</a>
<a class="external-links" href="https://stackoverflow.com/users/6282576/amir-a-shabani" target="_blank">
<img src="{% static 'app/images/icons/stackoverflow.ico' %}">
<span>stackoverflow</span>
</a>
</div>
vertical-align: middle;
我认为&的两行text-align: center;
会使文本居中,但事实并非如此。
解决方案
要垂直对齐您需要放在标签vertical-align: middle;
上的文本。img
关于不适合的图像div
,您也需要将 设置border-radius
为图像。
a img {
vertical-align: middle;
border-radius: 32px;
}
.child {
height: 250px;
margin: 20px;
}
.external-links {
display: inline-block;
background: #ccc;
text-align: center;
border-radius: 32px;
color: black;
text-decoration: none;
padding: 1px;
margin-right: 4px;
}
.external-links img {
vertical-align: middle;
border-radius: 32px;
margin-left: -2px;
}
.external-links span {
margin-right: 5px;
}
<div class="child">
<a class="external-links" href="https://github.com/amirashabani" target="_blank">
<img src="https://cdnjs.cloudflare.com/ajax/libs/webicons/2.0.0/webicons/webicon-github-m.png">
<span>github</span>
</a>
<a class="external-links" href="https://twitter.com/amirashabani" target="_blank">
<img src="https://cdnjs.cloudflare.com/ajax/libs/webicons/2.0.0/webicons/webicon-twitter-m.png">
<span>twitter</span>
</a>
<a class="external-links" href="https://stackoverflow.com/users/6282576/amir-a-shabani" target="_blank">
<img src="https://cdnjs.cloudflare.com/ajax/libs/webicons/2.0.0/webicons/webicon-stackoverflow-m.png">
<span>stackoverflow</span>
</a>
</div>
除了上述内容之外,我还对代码片段进行了一些小改动(例如将显示更改为inline-block
并更改了一些边距)以使结果看起来更好一些。
推荐阅读
- javascript - 在 Node.js 中循环遍历多维数组
- java - Java / Ebeans SQLException
- python - 通过从文件中读取值来绘制 CDF:matplotlib
- angularjs - 我在滥用 ng-init 吗?
- javascript - Vue - 排序和切片表导致无限循环错误
- ruby-on-rails - Rails:强参数不起作用,禁止属性
- html - CSS网格布局,简单的响应式设计
- python - 三个或更多熊猫数据框列的所有可能组合的乘法运算
- c# - .NET Core 中用于 tcp 服务器的 IHostedService
- python - 在 Kivy 上安装和使用 matplotlib