javascript - 改变 div 元素的形状

标签 javascript css html

我有一个包含一些文本的 div 元素,我想将我的 div 元素塑造成多边形或六边形,我希望文本以相同的方式出现在其中。有什么办法吗?

最佳答案

我认为每个人(无论出于何种原因包括 OP)都缺少“我希望文本以相同的方式包含在其中”

这是棘手的部分。如果你用 clip-path 制作形状,文本仍然是四四方方的,并且会被裁掉。

div{
  width:200px;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

p{color:white; background:steelblue}
<div> 
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat</p>
</div>

虽然任何其他绘制多边形的常规方法都会使文本表现为正方形,但根本不与形状交互。

我能想到的唯一方法是使用 shape-outside,并通过底片绘制形状。像这样的东西:

.polygon{
  width:300px;
  height:200px;
  background-color:steelblue;
}

.top-left, .top-right{
  width: 50%;
  height: 100%;
  background-color:white;
}

.top-left {
  shape-outside: polygon(0 0, 0 50%, 100% 0);
  clip-path: polygon(0 0, 0 50%, 100% 0);
  float: left;
}

.top-right {
  shape-outside: polygon(0 0, 100% 50%, 100% 0);
  clip-path: polygon(0 0, 100% 50%, 100% 0);
  float: right;
}

p{
  color:white;
  padding:1em;
  word-break:break-all
}
<div class="polygon">
  <div class="top-left"> </div>
  <div class="top-right"> </div>
  <p>Lorem ipsum dolor sit, amet consectetur adipi sicing elit. Enim eos magnam similique id expedita quibusdam, fuga, corporis doloremque sit dicta sint atque laboriosam repellat, exercitationem hic! Saepe necessitatibus tempora rerum</p>
</div>

当然,这非常复杂、脆弱且 incompatible with IE, Edge, and Firefox.a polyfill available though .

关于javascript - 改变 div 元素的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48329371/

相关文章:

python - 带有动态字段的 Django 表单。无效但没有错误

javascript - 这是对复选框输入的默认点击事件的核心误解,还是有缺陷的代码?

javascript - Chrome/Windows 7 上 JavaScript 的 Alt 键行为?

javascript - 打开具有不同内容的多个模态 - CSS 和 JS

html - WordPress - 使用 Bootstrap 让我的列自动调整大小

html - 在表中动态调整图像大小

javascript - JSON 日期成为今天的日期?

javascript - 主体解析器未定义,req.body

javascript - 在javascript中设置多值参数

javascript - 在 JavaScript 中连续按下回车键时编辑器没有显示正确的行号?