gpt4 book ai didi

css - 带有文本的网页上的对 Angular 线图像

转载 作者:技术小花猫 更新时间:2023-10-29 10:20:23 27 4
gpt4 key购买 nike

这是我尝试实现的效果: enter image description here

当用户将鼠标移到图像上时,一行文本应以对 Angular 线方式覆盖在图像上。

图像可以作为 <p> 的背景.真的只需要首先帮助使完整的东西对 Angular 线化。不想使用在不同宽度/高度的屏幕上不起作用的硬编码尺寸/位置。

<div class="testrows">  
<div class="drow"><p>Hello World</p></div>
<div class="drow"><p>Hello World</p></div>
<div class="drowhalf">
<p>Hello World</p><p>Hello World</p>
</div>
<div class="drowhalf">
<p>Hello World</p><p>Hello World</p>
</div>
<div class="drow"><p>Hello World</p></div>
<div class="drow"><p>Hello World</p></div>
</div>

CSS

body {
background: #e5e5e5;
height:100%;
}

.testrows{
display:block;
height:100%;
}

.drow {
width: 100%;
height: 10%;
background: black;
position: absolute;
top: -50px;
left: 0;
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
text-align: center;
color: #fff;
vertical-align: middle;
}

.drow p {
ms-transform: rotate(-90deg);
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg);
padding-right: 60px;
width: 100%;
padding-bottom: 55px;
}

.drowhalf {
width: 100%;
height: 10%;
background: black;
position: absolute;
top: -50px;
left: 0;
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
text-align: center;
color: #fff;
vertical-align: middle;
}

.drowhalf p {
ms-transform: rotate(-90deg);
-webkit-transform: rotate(-90deg);
transform: rotate(-90deg);
padding-right: 60px;
width: 50%;
padding-bottom: 55px;
}

https://jsfiddle.net/ufwmuuv4/

最佳答案

你可以用包装器(.inner-wrapper)包装所有的.drow元素,然后旋转它(DRY),设置transform-origintop left 从元素的 top left 旋转,最后将 translateX(-50%).inner-wrapper 使其在其父项中居中。

为了拉伸(stretch).drow,你可以将width:200%赋值给.inner-wrapper

要计算.drow的高度,就得用js。

Jsfiddle

function stretch(){
var $wrapper = $('.wrapper'),
diagonal = Math.ceil(Math.sqrt(Math.pow($wrapper.width(),2) + Math.pow($wrapper.height(),2))),
height = diagonal / $wrapper.find('.inner-wrapper .drow').length;
$wrapper.find('.inner-wrapper .drow').height(height).css('line-height', height + 'px');
}

$(document).ready(function(){
stretch();
});


$( window ).resize(function(){
stretch();
});
 html,
body {
margin: 0;
padding: 0;
}

html,
body,
.wrapper,
.inner-wrapper {
height: 100%;
}

body {
background: #e5e5e5;
}

p {
margin: 0;
}

.wrapper {
overflow: hidden;
}

.inner-wrapper {
transform: rotate(-45deg) translateX(-50%);
transform-origin: top left;
text-align: center;
width: 200%;
}

.drow {
height: 100px;
line-height: 100px;
color: #fff;
background: rgba(0, 0, 0, 1);
}

.drowhalf p {
display: inline-block;
width: 50%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
<div class="inner-wrapper">
<div class="drow">
<p>Hello World</p>
</div>
<div class="drow">
<p>Hello World</p>
</div>
<div class="drow drowhalf">
<p>Hello World</p><p>Hello World</p>
</div>
<div class="drow drowhalf">
<p>Hello World</p><p>Hello World</p>
</div>
<div class="drow">
<p>Hello World</p>
</div>
<div class="drow">
<p>Hello World</p>
</div>
</div>
</div>

关于css - 带有文本的网页上的对 Angular 线图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43369397/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com