html - CSS3 : Center Text (content) in div:before

标签 html css

我写了一些代码来创建带有一些文本的中转站。现在我有两个问题:

1) 我想将文本居中。 2) 我想让中途停留成为一个链接。

本人是CSS新手,希望大家多多指教!

最好的问候!

.hover_div {
    position:relative;
    width:200px;
    height:200px;
}
.hover_div img {
    width:100%;
    vertical-align:top;
}
.hover_div:after {
    content: "";
    position: absolute;
    width:100%; height: 100%;
    top: 0; left: 0;
    background:rgba(0,0,0,0.6);
    opacity:0;
    transition: all 0.5s;
    -webkit-transition: all 0.5s;
}

.hover_div:before {
    content: attr(data-content);
    color:#fff;
    position:absolute;
    opacity:0;
    transition: all 0.5s;
    -webkit-transition: all 0.5s;
    z-index: 1;
}
.hover_div:hover:after {
    opacity:1;
}

.hover_div:hover:before {
    opacity:1;
}
<div data-content="Elektro" class="hover_div">
    <img src="http://i.stack.imgur.com/Sjsbh.jpg" alt="" />
</div>

最佳答案

我已经在以下 JSFiddle 中更新了您的代码:https://jsfiddle.net/rvxo7fn5/

我已将以下行添加到 :before :

text-align:center;
width: 100%;
margin-top:50%;
transform: translateY(-50%);

基本上,text-align: center;当然,文本水平居中。但是,absolute定位的 div 没有宽度,这就是我添加 width: 100% 的原因.接下来,您需要将其垂直居中。 margin-top: 50%;将 div 移动父 div 高度的 50%。 transform: translateY(-50%)将 div 向后移动 div 本高度度的 50%。这会将它对齐在父级的中心。 (父高度的 50% - 子 div 高度的 50%)。

您还提到希望它成为一个链接。这可以通过简单地替换 <div> 来实现。用<a>并添加 display: block;给你的.hover_div类(class)。这赋予它 div 也具有的属性。

希望对您有所帮助!

关于html - CSS3 : Center Text (content) in div:before,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38721066/

相关文章:

html - 图像上长文本的对齐

jquery - 使用 AJAX 刷新 Django 动态 HTML 表格

javascript - HTML5 视频自动播放/播放一次

java - 禁用 Ctrl+C

css - 如何使用默认选定元素创建 css 'nav'

c# - 有 .net 的 Css 编写器吗?

html - 在 lg、md sm 和 xs 处引导不同的 img 大小

javascript - 如何更改我的 <html> 的第一类名称并保持其他类不变?

javascript - Zurb Foundation 5 - 顶部栏 - 在小浏览器窗口上折叠但在移动设备上不折叠

html - 使用 XSLT 样式化内联 XML 标签