【问题标题】:Is it possible to style 2 halves of 1 div in separately?是否可以分别设置 1 个 div 的 2 个半部分的样式?
【发布时间】:2017-09-02 14:56:17
【问题描述】:

例如,一半以一个角度倾斜,另一半以另一个角度倾斜,仅使用 1 个 div。

原因是我将在 Div 中包含文本,所以我不能将它分成两部分。

非常感谢您提供的任何信息或想法。

【问题讨论】:

标签: html css


【解决方案1】:

将此作为示例,因为您没有添加任何代码,无法猜测您的方法。但是您可以通过将background:linear-gradient 添加到parent div 来做到这一点。

div{
  width:300px;
  height:300px;
  background:linear-gradient(90deg, red 50%, green 50%);
}
div h1{
  text-align:center;
}
<div>
<h1>Hello !!!</h1>
</div>

添加vendor prefixes 以获得其他浏览器支持。

【讨论】:

    【解决方案2】:

    在一个元素上通常不能有两种不同的样式,规则是在条件下应用,例如“如果宽度超过 50%,应用样式 nr.2”

    而不是这样,创建一些简单的结构(下面的sn-p)。

    !!我不推荐这个,但你也可以通过使用渐变在一个 div 上以有限的方式显示 2 种不同的颜色,检查这个工具http://www.colorzilla.com/gradient-editor/

    但除此之外,你应该做一些结构,因为如果你需要更多的样式而不是仅仅 2 种颜色,那简直是必要的。

    .container, .container2{position:absolute; top:0; left:0; margin:auto; width:200px; height:200px; background:black;}
    .bg-1, .bg-12
    {height:100%; width:50%; position:absolute; top:0; left:0; background:#CCF;}
    
    .bg-2, .bg-22{height:100%; width:50%; position:absolute; top:0px; left:50%; background:#FCC;}
    .text{width:100%; height:100%; position:absolute; top:0; left:0; font-size:80px; text-align:center; vertical-align:middle; line-height:200px;}
    .container2{left:230px !important;}
    
    .bg-12{box-shadow: inset 0px 0px 52px 0px rgba(0,0,0,0.75);}
    .bg-22{box-shadow: inset 0px 0px 52px 0px rgba(0,255,0,0.75);}
    <div class="container">
    <div class="bg-1"></div>
    <div class="bg-2"></div>
    <div class="text">
    Text
    </div>
    </div>
    <div class="container2">
    <div class="bg-12"></div>
    <div class="bg-22"></div>
    <div class="text">
    Text
    </div>
    </div>

    【讨论】:

    • 这是很多不需要的元素。您应该使用 :before:after 伪元素,这样您只需要 1 个 div
    • @Zorak 假设我希望 div 是倾斜的,以便它给人一种折叠纸的错觉。那么我如何允许两个 div 以相反的角度倾斜,然后让文本倾斜呢?有没有可能?
    • @Pefara 我不喜欢伪元素,因为它们的行为以及需要修剪它并弄清楚它们的行为。例如,jsfiddle.net/w3q2fdnz :after 元素覆盖了内容 div - 好的,它是在之后,下面的结构很好 - 也许我可以通过 z-indexes 处理它?谁知道 - 但是你有两个元素,之前和之后..如何添加 4 个背景尺寸?旧时尚 div 来了。
    • @evilgenious448 是的,这是可能的,但它有点复杂。您必须形成 CONTAINER 的形状,设置背景,然后将容器设置为 overflow:hidden
    • @evilgenious448 在 SKEW 的情况下,它更简单。只需倾斜容器并以相反的方式倾斜文本:jsfiddle.net/z7azopaj
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2011-08-09
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多