我正在尝试在偏斜的div上创建一个部分阴影,尽可能接近这个广告素材。
现在我一直在尝试使用伪元素(特别是之前),但我发现每当我将它们应用的元素倾斜时,这些元素的行为都很奇怪。即使z-index设置为-1,伪元素也会一直显示在div的顶部。无论我对z-index做什么,它都将保持在它之上。我希望它在它应用的div后面,并在下面的div前面,就像在广告中一样。
这是我的:: before代码和codepen的链接
CSS
/*! Shadows */
#test-title {
position: relative;
}
#test-title:before {
z-index: -1;
position: absolute;
content: "";
bottom: 15px;
left: 10px;
width: 50%;
top: 80%;
max-width:300px;
box-shadow: 0 15px 10px #777;
-webkit-transform: rotate(-3deg);
-moz-transform: rotate(-3deg);
-o-transform: rotate(-3deg);
-ms-transform: rotate(-3deg);
transform: rotate(-3deg);
}
答案 0 :(得分:9)
Skew父母然后以相同的程度疏忽孩子。
public class ScriptB : MonoBehaviour{
ScriptA scriptInstance = null;
void Start()
{
GameObject tempObj = GameObject.Find("NameOfGameObjectScriptAIsAttachedTo");
scriptInstance = tempObj.GetComponent<ScriptA>();
//Access playerScore variable from ScriptA
scriptInstance.playerScore = 5;
//Call doSomething() function from ScriptA
scriptInstance.doSomething();
}
}
* {
box-sizing: border-box
}
body {
padding: 40px 0
}
section {
width: 60vw;
clear: both;
overflow: hidden;
min-height: 100px;
margin: 0 auto;
position: relative;
background: #035076
}
section article {
width: 60%;
padding: 20px;
color: white;
margin: 0 auto
}
section:nth-child(even) {
transform: skew(-45deg) translate(5vw);
box-shadow: inset 0 0 2px 0 black;
}
section:nth-child(odd) {
transform: skew(45deg);
}
section:nth-child(even) article {
transform: skew(45deg) translate(5vw);
}
section:nth-child(odd) article {
transform: skew(-45deg);
}
section:before,
section:after {
content: '';
position: absolute;
}
section:nth-child(even):before {
width: 100%;
height: 0;
bottom: 100%;
left: 0;
z-index: 6;
opacity: 1;
transform: rotate(-10deg) translateY(-30px);
box-shadow: 0px 0px 64px 30px rgba(0, 0, 0, 0.8);
}
section:nth-child(odd):not(:first-child):before {
width: 100%;
height: 0;
bottom: 100%;
right: 0;
z-index: 6;
opacity: 1;
transform: rotate(10deg) translateY(-30px);
box-shadow: 0px 0px 64px 30px rgba(0, 0, 0, 0.8);
}
答案 1 :(得分:2)
更简单的方法是在第一个之后将阴影放在每个框的顶部。这将解决所有类型的z-index问题,因为每个框比它上面的框高1级..并且它允许阴影位于容器内而不是它之外。
我还改变了你的阴影样式,使用径向渐变*而不是盒子阴影,因为在这种情况下它更容易控制,并且更接近你的设计。我也做了一些定位,使其看起来更好一些,并为skew1
和skew2
我已将您的上一个规则集更改为:
.test-info:before {
position: absolute;
content: "";
width: 100%;
left: 0;
top: 0;
height: 30px;
}
.test-info.skew1:before {
background: radial-gradient(ellipse farthest-side at 30% top, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%);
}
.test-info.skew2:before {
background: radial-gradient(ellipse farthest-side at 70% top, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%);
}
*注意:在使用渐变之前,您可能需要检查/添加其他浏览器支持。
答案 2 :(得分:0)
我试过,它并不完美,但是,它更接近理想的外观,imho:
<div id="test-title">
<h3>What our clients say about us</h3>
</div>
<div id="shadow1"></div>
所以,我添加了新的html元素(阴影),而不是使用伪元素......现在,我已正确设置z-index和位置,隐藏第一个div后面的旋转阴影div ,并添加了这个css:
#shadow1 {
position:absolute;
width:50%;
height:150px;
background:black;
top:50px;
left:11%;
z-index:6;
opacity:1;
transform: rotate(-5deg);
box-shadow: 15px 56px 50px -12px rgba(0,0,0,0.80);
}
演示:http://codepen.io/anon/pen/vGwNqY
你可以玩旋转,盒子阴影,位置,身高......但是,这可能是一个好的开始(也许)。附:类似的逻辑可以应用于第二个div。
答案 3 :(得分:0)
尝试使用print(json_data['Events']['event'][2]['markets'][1]['selection'][0]['attributes']['attrib'][0]['value'])
伪https://jsfiddle.net/0andpzsp/
:before
&#13;
.cont {
width: 1000px;
height: 500px;
}
div[class^="d"] {
width: 70%;
height: 50%;
position: relative;
margin-left: 40px;
margin-top: 50px;
}
.d0 {
background: linear-gradient(to right, #005f8a 0%,#00486c 50%,#003a59 100%);;
transform: skew(20deg)
}
.d1 {
background: linear-gradient(to right, #005f8a 0%,#00486c 50%,#003a59 100%);;
overflow: hidden;
top: -50px;
left: 20%;
transform: skewX(-20deg);
z-index: -1
}
.d1:before {
content: '';
border-radius: 30%;
position: absolute;
display: block;
width: 600px;
height: 70px;
z-index: 9999;
top: -100px;
left: -70px;
box-shadow: -50px 60px 90px 0px #000;
transform: rotate(-5deg)
}
&#13;