是否可以在圣诞树周围包裹文字,并让文字触摸边缘?
我在左边有一个文本块,在右边有一个文本块,我想把树放在中间,文字围绕左右边缘,这是可能的吗?
HTML:
<div class="main-content"> <div class="left-text"> <p class="left">Sed pretium dapibus lorem. Morbi sed diam eu dolor fermentum pharetra. Aliquam quis erat maximus ligula tincidunt tincidunt vel sed dolor. Curabitur sed aliquet mi. Morbi quis ipsum non ante consectetur varius. Fusce dapibus posuere metus,nec interdum ante. Curabitur magna odio,interdum at est nec,vulputate faucibus quam. Aliquam est nisi,ultricies in mauris quis,venenatis tristique urna. Integer tristique,orci lobortis egestas feugiat,enim massa hendrerit turpis,quis dictum purus tortor ac augue.</p> <p class="left">Sed pretium dapibus lorem. Morbi sed diam eu dolor fermentum pharetra. Aliquam quis erat maximus ligula tincidunt tincidunt vel sed dolor. Curabitur sed aliquet mi. Morbi quis ipsum non ante consectetur varius. Fusce dapibus posuere metus,quis dictum purus tortor ac augue.</p> </div> <div class="right-text"> <p class="right">Sed pretium dapibus lorem. Morbi sed diam eu dolor fermentum pharetra. Aliquam quis erat maximus ligula tincidunt tincidunt vel sed dolor. Curabitur sed aliquet mi. Morbi quis ipsum non ante consectetur varius. Fusce dapibus posuere metus,quis dictum purus tortor ac augue.</p> <p class="right">Sed pretium dapibus lorem. Morbi sed diam eu dolor fermentum pharetra. Aliquam quis erat maximus ligula tincidunt tincidunt vel sed dolor. Curabitur sed aliquet mi. Morbi quis ipsum non ante consectetur varius. Fusce dapibus posuere metus,quis dictum purus tortor ac augue.</p> </div> <div class="christmas-tree"><img src="http://www.raidersleafs.com/images/christmas-tree.png" /></div> </div>
CSS:
.main-content { } .main-content .left-text { width:25%; float:left; } .main-content .left-text p.left { } .main-content .right-text { width:25%; float:right; } .main-content .right-text p.right { } .main-content .christmas-tree { text-align: center; } .main-content .christmas-tree img { width: 90%; }
小提琴:
http://jsfiddle.net/63p19cbc/1/
UPDATE
我能够沿着树的边缘获得文本的左边div …仍然无法得到正确的一样做:
.main-content .christmas-tree img { width: 90%; shape-outside: polygon(50% 0,100% 100%,0% 100%,0 100%) content-Box; float: right; } <div class="main-content"> <div class="christmas-tree"><img src="http://www.raidersleafs.com/images/christmas-tree.png" /></div> <div class="left-text"> <p class="left">Sed pretium dapibus lorem. Morbi sed diam eu dolor fermentum pharetra. Aliquam quis erat maximus ligula tincidunt tincidunt vel sed dolor. Curabitur sed aliquet mi. Morbi quis ipsum non ante consectetur varius. Fusce dapibus posuere metus,quis dictum purus tortor ac augue.</p> <p class="left">Sed pretium dapibus lorem. Morbi sed diam eu dolor fermentum pharetra. Aliquam quis erat maximus ligula tincidunt tincidunt vel sed dolor. Curabitur sed aliquet mi. Morbi quis ipsum non ante consectetur varius. Fusce dapibus posuere metus,quis dictum purus tortor ac augue.</p> </div> <div class="right-text"> <p class="right">Sed pretium dapibus lorem. Morbi sed diam eu dolor fermentum pharetra. Aliquam quis erat maximus ligula tincidunt tincidunt vel sed dolor. Curabitur sed aliquet mi. Morbi quis ipsum non ante consectetur varius. Fusce dapibus posuere metus,quis dictum purus tortor ac augue.</p> <p class="right">Sed pretium dapibus lorem. Morbi sed diam eu dolor fermentum pharetra. Aliquam quis erat maximus ligula tincidunt tincidunt vel sed dolor. Curabitur sed aliquet mi. Morbi quis ipsum non ante consectetur varius. Fusce dapibus posuere metus,quis dictum purus tortor ac augue.</p> </div> </div>
解决方法
我相信这是你正在寻找的^^:
JSFiddle.请注意,我改变了JSFiddle中的html一点点.
HTML
<div class="main-content"> <div class="left"> <p> In a one horse open sleigh.</p> </div> <div class="right"> <p>Oh the weather outside is frightful</p> </div> <img class="christmas-tree" src="http://www.raidersleafs.com/images/christmas-tree.png" /> </div><!--main-content-->
CSS
.main-content { position: relative; width: 1000px; margin: auto; } /*align image to center (horizontal) and place it by absolute positioning (so the image is always appearing on the same spot) after placing it we will create an empty spot so the text will appear to flow around the image*/ img.christmas-tree { position: absolute; left: calc(50% - 215px); width: 430px; } /*Just some text assigned to the right div*/ .right{ width: 50%; float: right; } /*We will create empty space where the christmas tree is by adding blank content with ::before*/ .right::before{ content: ""; height: 550px; shape-outside: polygon(50px 0,50px 150px,215px 550px,0 550px);/*this cuts out a part of the block so the text can freely move around. The values in here are coördinates in this blank content that allow text to float around it.*/ width: 100%; float: left; } .left{ width: 50%; float: left; clear: left; text-align: right; } /*We will create empty space where the christmas tree is by adding blank content with ::before*/ .left::before{ content: ""; shape-outside: polygon(450px 0px,450px 150px,270px 550px,500px 550px); /*this cuts out a part of the block so the text can freely move around*/ height: 550px; width: 100%; float: right; }
几个最后的说明:
>多边形很难解释,但是你基本上添加了一些点(想象一下这些点之间的线)来“切割”一些块或图像的一部分. The site Chris Hollenbeck recommended解释得比我好.>我的解决方案的很大一部分依赖于了解圣诞树的确切坐标.为了使它与灵活的大小树一起工作将会变得更加困难.>我期望许多浏览器不支持外形:如果你知道浏览器做什么,不要留下评论^^.