【问题标题】:Text in 'stairs' layout by CSS or Javascript?CSS或Javascript的“楼梯”布局中的文本?
【发布时间】:2016-02-18 18:59:31
【问题描述】:

我正在尝试用 html/css/jquery 中的布局来实现(见附件)

有人知道如何做到这一点吗?我试图为该行放置一个 css 形状或 svg - 这很好,但是如何使文本变为这种格式?任何亮点都会令人难以置信,从我的研究中我找不到任何这样的信息!谢谢你的时间:)

编辑:这种格式怎么样?

【问题讨论】:

  • 你可以用 JS 解决这个问题吗?你知道那里的楼梯形状的宽度和高度吗?

标签: html css layout text


【解决方案1】:

这是 JS 中的一种可能性。它基本上相当于插入宽度增加的浮动 div,每一个行高高(我将 div 涂成红色以使其更明显)。如果您愿意,也可以直接在 HTML 中执行此操作。

var stairsHeight = 500;
var lineHeight = 20;
for (var y = lineHeight; y <= stairsHeight; y+=lineHeight) {
	$(".stairs").prepend('<div style="height:' + lineHeight + 'px; width:' + y + 'px; float:right; clear:right; background:red;"></div>');
}
.stairs {width:500px; height:500px; line-height:20px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="stairs">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
</div>

【讨论】:

  • 看起来不错,非常感谢!一个技巧,是否有可能让左对齐现在像它一样对齐,但过了一会儿,文本的两侧(左侧和右侧)都会获得相同的“楼梯效果”?谢谢你的帮助!!
  • 当然,只要左右浮动一些 div 就可以了。你可以用这个方法做任何类型的对角线形状。
  • 嗯,我尝试在里面添加另一个类,并为新类添加一个浮点数,但它似乎没有工作:(你有没有一个例子:?
  • 嗨,非常感谢,我正在尝试实现最后一个布局,我刚刚更新了我的问题并添加了屏幕截图。这就像一个右对齐,左边有楼梯效果,然后是右边楼梯上的左对齐。你知道如何实现它吗?几天以来我一直坚持下去。非常感谢!!
  • 如果需要,还可以添加一个`text-align:justify;` 使其在右侧均匀化。
【解决方案2】:

有一个很好的教程:https://sarasoueidan.com/blog/css-shapes/。 使用这种非标准形状键是 polygon() 用于 shape-in​​side 或 shape-outside 。他们确实做了很好的插图,因此很容易理解并应用于您自己的想法。

【讨论】:

【解决方案3】:

Css 形状

您要查找的内容称为 shape-outside css 属性。

目前只有 chrome 支持此功能。

MDN link

如果您想知道如何使用它:

.element {
  float: left;
  box-sizing: border-box;
  shape-outside: polygon(0 0, 0 100px, 100px 100px);
  -webkit-clip-path: polygon(0 0, 0 100px, 100px 100px);
  width: 100px;
  height: 100px;
  background-color: firebrick;
}
span {
  vertical-align: top;
}
<div class="element">

</div>
<p>Lorem ipsum dolar si amet Lorem ipsum
  <br>dolar si amet Lorem ipsum
  <br>dolar si amet Lorem ipsum dolar si amet Lorem ipsum dolar si amet Lorem ipsum dolar si amet Lorem ipsum dolar si amet</p>

Css shapes tutorial

【讨论】:

    【解决方案4】:

    这可能是一个 png,但绝对是一个画布,你可以使用带有 lineTo x, y 坐标的画布绘制任何形状,它使用 javascript,但即使你不擅长 javascript,周围也有很好的资源 你可以在这里试试: http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_canvas_tut_path

    【讨论】:

    • 我给他发了一个编辑器的链接,只是为了了解主要想法,也许可以在编辑器中尝试一下。我完全同意这不是一个好的来源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2015-02-22
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    相关资源
    最近更新 更多