【问题标题】:How to create a div with a diagonal (or angled) top line如何创建具有对角线(或倾斜)顶线的 div
【发布时间】:2013-12-03 22:05:04
【问题描述】:

我是 CSS3 的新手,我所知道的都是自学的,阅读你们或任何其他教程,所以经过数小时的研究和试错,我真的可以使用你的帮助 :(。

我正在尝试仅旋转 div 的顶行。这是我到目前为止所做的:

http://blanc-design.com/sigma2/

在页脚,我旋转了两个 div 来创建这种效果。但我想做的是在绿色 div 上有一条直线底线。这是我想要的一个例子:

http://blanc-design.com/sigma2/ex.jpg

我不知道我的解释是否正确。这是我用来旋转 div 的 CSS 代码:

 #footer-top {
color: #fff;
padding: 35px 0 15px;
transform:  rotate(2deg) scale(1) skew(3deg) translate(0px);-webkit-transform:  rotate(2deg) scale(1) skew(3deg) translate(0px);-moz-transform: rotate(2deg) scale(1) skew(3deg) translate(0px);-o-transform:  rotate(2deg) scale(1) skew(3deg) translate(0px);-ms-transform:  rotate(2deg) scale(1) skew(3deg) translate(0px);
}

#footer-space {
padding: 0 0 6px;
}

#footer-top2 {
color: #fff;
background-color: rgba(20,  122,  188,  0.5);
background: rgba(20,  122,  188,  0.5);
color: rgba(20,  122,  188,  0.5);
padding: 6px 0 12px;
height: 2px;
transform:  rotate(358deg) scale(1) skew(0deg) translate(0px);-webkit-transform:  rotate(358deg) scale(1) skew(0deg) translate(0px);-moz-transform: rotate(358deg) scale(1) skew(0deg) translate(0px);-o-transform:  rotate(358deg) scale(1) skew(0deg) translate(0px);-ms-transform:  rotate(358deg) scale(1) skew(0deg) translate(0px);
}

#footer-top3 {
color: #fff;
background-color: rgba(128,  185,  46,  0.7);
background: rgba(128,  185,  46,  0.7);
color: rgba(128,  185,  46,  0.7);
transform:  rotate(358deg) scale(1) skew(-2deg) translate(0px);
-webkit-transform:  rotate(358deg) scale(1) skew(-2deg) translate(0px);
-moz-transform: rotate(358deg) scale(1) skew(-2deg) translate(0px);
-o-transform:  rotate(358deg) scale(1) skew(-2deg) translate(0px);
-ms-transform:  rotate(358deg) scale(1) skew(-2deg) translate(0px);
}

这是 HTML:

<div id="footer-top2"></div>
    <div id="footer-space"></div>
    <div id="footer-top3">
    <div id="footer-top">
        <div class="container clearfix">
            <div class="one-fourth">
                <div class="widget twitter-widget">
                    <h3>Últimos Tweets</h3>
                    <div class="tweet"></div>
                </div>
            </div>
            <div class="one-fourth">
                <div class="widget twitter-widget">
                    <h3> Facebook Feed</h3>
                    <div class="tweet"></div>
                </div>
            </div>

            <div class="one-fourth">
                <div class="widget twitter-widget">
                    <h3>Fotos en Instagram</h3>
                    <div class="tweet"></div>
                </div>
            </div>


            <div class="one-fourth column-last">
                <div class="widget contact-info">
                    <h3>Contacto</h3>
                    <div>address here
                        </div>
                </div>
            </div>
        </div>
    </div>
    </div>

如果有人能帮助我,我将不胜感激!

提前致谢。

b.

【问题讨论】:

标签: css html angle diagonal


【解决方案1】:

首先我认为这可以用 CSS 三角形来完成,但我不太清楚如何使向下向右的三角形设置为 100% 宽度,所以我转向另一个选项...

您可以继续使用旋转技术,但随后在绿色部分的底部添加一些填充,然后使用负边距底部使页脚重新向上并超过对角线。如果您随后将页脚设置为相对,它应该位于果岭顶部,这样您就不会看到对角线。

我在实际站点上对此进行了测试,发现我需要在footer-top 内的container 中添加填充,并将负边距放在footer-top 上。否则,填充会导致主体底部出现间隙。

很难用语言描述,所以这里是sn-p。

#footer-top {
    color: #fff;
    padding: 35px 0 15px;
    transform:  rotate(2deg) scale(1) skew(3deg) translate(0px);-webkit-transform:  rotate(2deg) scale(1) skew(3deg) translate(0px);-moz-transform: rotate(2deg) scale(1) skew(3deg) translate(0px);-o-transform:  rotate(2deg) scale(1) skew(3deg) translate(0px);-ms-transform:  rotate(2deg) scale(1) skew(3deg) translate(0px);
    
    margin-bottom: -20px; /* Added */
}

/* Added */
#footer-top .container {
    padding-bottom: 20px;
}

#footer-space {
    padding: 0 0 6px;
}

#footer-top2 {
    color: #fff;
    background-color: rgba(20,  122,  188,  0.5);
    background: rgba(20,  122,  188,  0.5);
    color: rgba(20,  122,  188,  0.5);
    padding: 6px 0 12px;
    height: 2px;
    transform:  rotate(358deg) scale(1) skew(0deg) translate(0px);-webkit-transform:  rotate(358deg) scale(1) skew(0deg) translate(0px);-moz-transform: rotate(358deg) scale(1) skew(0deg) translate(0px);-o-transform:  rotate(358deg) scale(1) skew(0deg) translate(0px);-ms-transform:  rotate(358deg) scale(1) skew(0deg) translate(0px);
}

#footer-top3 {
    color: #fff;
    background-color: rgba(128,  185,  46,  0.7);
    background: rgba(128,  185,  46,  0.7);
    color: rgba(128,  185,  46,  0.7);
    transform:  rotate(358deg) scale(1) skew(-2deg) translate(0px);
    -webkit-transform:  rotate(358deg) scale(1) skew(-2deg) translate(0px);
    -moz-transform: rotate(358deg) scale(1) skew(-2deg) translate(0px);
    -o-transform:  rotate(358deg) scale(1) skew(-2deg) translate(0px);
    -ms-transform:  rotate(358deg) scale(1) skew(-2deg) translate(0px);
}

#footer-bottom {
    color: #808080;
    background-color: #2D2D2D;
    font-size: 0.916em;
    padding: 30px 0;
    border-top: 1px solid #000;
    box-shadow: 0 4px 4px rgba(0,0,0,0.2) inset;
    position: relative; /* Added */
}
<div id="footer-top2"></div>
<div id="footer-space"></div>
<div id="footer-top3">
    <div id="footer-top">
    <div class="container clearfix">
        <div class="one-fourth">
                <div class="widget twitter-widget">
                    <h3>Últimos Tweets</h3>
                    <div class="tweet"></div>
                </div>
            </div>
            <div class="one-fourth">
                <div class="widget twitter-widget">
                    <h3> Facebook Feed</h3>
                    <div class="tweet"></div>
                </div>
            </div>

            <div class="one-fourth">
                <div class="widget twitter-widget">
                    <h3>Fotos en Instagram</h3>
                    <div class="tweet"></div>
                </div>
            </div>


            <div class="one-fourth column-last">
                <div class="widget contact-info">
                    <h3>Contacto</h3>
                    <div>address here
                        </div>
                </div>
            </div>
        </div>
    </div>
</div>
<div id="footer-bottom">
    <div class="container clearfix">
    Footer content
    </div>
</div>

【讨论】:

  • 哇!!!这正是我一直在寻找的。你太棒了!!!!谢谢你!!!我想给你积分,但我不能,因为我是新来的,但我一得到积分就会:)。一百谢谢!干杯。
  • 没有什么比死链接更令人失望的了……(看起来很可能 jsbin 被关闭了)当然这已经有 3 年历史了……但仍然……人们,请发布代码和关联。否则,这些答案将变得毫无用处。我希望 SO 会强制执行此类要求。
  • @ocergynohtna 该链接对我有用。不过,我已将代码添加为内联 sn-p。
【解决方案2】:

您可以尝试使用 CSS 渐变来实现这一点。我在我网站的启动页面上做了类似的事情:

http://agency89ninety.com

上述网站的倾斜背景是纯 CSS3 渐变(当然还有后备)

这是通过创建一个渐变来完成的,从 0% 开始,颜色为 GREY,在 50% 结束,颜色为 GREY,然后从 50% 开始另一个渐变,颜色为 DARKGREY,最后为 100%也有深灰色的颜色。

基本上你是在欺骗系统。从技术上讲,它是一种渐变,但看起来像是两种纯色在中间相交并成角度。

查看此站点以了解有关 css 渐变属性的更多信息:

http://www.css3files.com/gradient/

【讨论】:

  • 感谢您的回答!!我去看看,让你知道:)。
  • 给定的链接似乎不再相关。
  • 投反对票,因为链接不再相关。请使用 stackoverflows 内联编辑器创建一个 sn-p
猜你喜欢
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 2016-12-23
  • 2012-11-15
  • 2020-04-12
  • 2020-09-21
相关资源
最近更新 更多