请告诉我在这种情况下如何最好地弥补,蜂窝?
我做了类似的事情,但有相同的边界(我附上了代码)。
在这种情况下,一切都变得更加困难,我没有太多想法如何做得更好。
第二个问题是如何正确定位这些块,以便以后不必过多地处理媒体查询?
.benefits__wrapper {
text-align: center;
padding-top: 3.9881vw;
padding-bottom: 15px; }
.benefits__heading {
margin-bottom: 6.84524vw; }
.benefits__items {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center; }
@media screen and (max-width: 759px) {
.benefits__items {
-ms-flex-wrap: wrap;
flex-wrap: wrap; } }
@media screen and (max-width: 759px) {
.benefits__item {
width: 40%;
margin: 20px 0; } }
@media screen and (max-width: 459px) {
.benefits__item {
width: 100%; } }
.item {
text-align: center;
margin-right: 40px; }
@media screen and (max-width: 459px) {
.item {
margin-right: 0; } }
.item:last-child {
margin-right: 0; }
.item__title {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
font: 1.25rem/1 "PFEncoreSansPro-Regular";
color: #868686;
margin-bottom: 34px; }
.item__info {
font: 0.9375rem/1.125rem "PFEncoreSansPro-Thin";
color: #adadad;
margin-bottom: 3.03571vw; }
.hexagon {
margin: 0 auto 54px; }
.hexagon__icon {
fill: #fff;
-webkit-transition: background-color .35s;
transition: background-color .35s; }
.hexagon,
.hexagon__item_inner {
position: relative;
width: 91px;
height: 52px;
background-color: #fe8682;
-webkit-transition: background-color .35s;
transition: background-color .35s; }
.hexagon:before,
.hexagon:after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #fe8682;
-webkit-transition: background-color .35s;
transition: background-color .35s; }
.hexagon:before,
.hexagon__item_inner:before {
-webkit-transform: rotate(120deg);
transform: rotate(120deg); }
.hexagon:after,
.hexagon__item_inner:after {
-webkit-transform: rotate(60deg);
transform: rotate(60deg); }
.hexagon__item_inner {
position: absolute;
left: 0;
top: 0;
-webkit-transform: scale(0.9);
transform: scale(0.9);
background-color: #fc635e;
z-index: 1; }
.hexagon__item_inner:before,
.hexagon__item_inner:after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
-webkit-transition: background-color .35s;
transition: background-color .35s;
background-color: #fc635e; }
.hexagon__content {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
width: 100%;
height: 100%;
z-index: 1; }
.hexagon:hover,
.hexagon:hover:before,
.hexagon:hover:after {
background-color: #fc635e; }
.hexagon:hover .hexagon__item_inner,
.hexagon:hover .hexagon__item_inner:before,
.hexagon:hover .hexagon__item_inner:after {
background-color: #fff; }
.hexagon:hover .hexagon__icon {
fill: #fc635e; }
<section class="benefits">
<div class="benefits__wrapper container">
<div class="benefits__heading">
<div class="heading_usual">
<div class="heading__title uppercase">What can
<div class="span heading_active">you receive?</div>
</div>
<div class="heading__subtitle">
Daisy is sagittis sem nibh id elit. Duis sed odio sit amet nibh vulputate cursus a
sit amet mauris. Morbi accumsan ipsum
</div>
</div>
</div>
<div class="benefits__items">
<article class="benefits__item item">
<div class="hexagon">
<div class="hexagon__item_inner"></div>
<div class="hexagon__content">
<svg class="hexagon__icon icon_xl">
<use xlink:href="svg/sprite.svg#rocket"></use>
</svg>
</div>
</div>
<div class="item__title uppercase">Clents</div>
<div class="item__info">
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. Aenean</div>
</article>
<article class="benefits__item item">
<div class="hexagon">
<div class="hexagon__item_inner"></div>
<div class="hexagon__content">
<svg class="hexagon__icon icon_xl">
<use xlink:href="svg/sprite.svg#web-design"></use>
</svg>
</div>
</div>
<div class="item__title uppercase">branding</div>
<div class="item__info">
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. Aenean</div>
</article>
<article class="benefits__item item">
<div class="hexagon">
<div class="hexagon__item_inner"></div>
<div class="hexagon__content">
<svg class="hexagon__icon icon_xl">
<use xlink:href="svg/sprite.svg#diagram"></use>
</svg>
</div>
</div>
<div class="item__title uppercase">marketing</div>
<div class="item__info">
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. Aenean</div>
</article>
<article class="benefits__item item">
<div class="hexagon">
<div class="hexagon__item_inner"></div>
<div class="hexagon__content">
<svg class="hexagon__icon icon_xl">
<use xlink:href="svg/sprite.svg#speaker"></use>
</svg>
</div>
</div>
<div class="item__title uppercase">adv.</div>
<div class="item__info">
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet. Aenean</div>
</article>
</div>

svg 解决方案
SVG 解决方案有很多优点:
IE11,Edge分步说明:
要获得人物轮廓与背景图像的精确绑定,请将图像加载到矢量编辑器中,并根据图像的整体尺寸分配 svg 值。
width="1330" height="880" viewBox="0 0 1330 880"在使用该工具的矢量编辑器中 -
Рисовать кривые Безье и прямые отрезки沿着红线和六边形的轮廓绘制锚点
path公共线和六边形。向每个六边形添加文本,我们
X,使用 Y` 坐标定位<text class="txt1" x="355" y="400" > STEP <tspan dx="0">1 </tspan></text>将图像添加到六边形
pattern<pattern id="pattern" x="0px" y="-255px" width="341px" height="382px" patternUnits="userSpaceOnUse"> <image xlink:href="https://isstatic.askoverflow.dev/DSbkL.jpg" width="341px" height="382px" /> </pattern><g id="crc1"> <circle r="23" fill="#FC635E"/> <text x="-15" y="15" fill="white" font-size="36" >✔</text> </g>下面是一个完整的代码示例,添加了常用线的动画
本教程的CSS 解决方案可以在@UModeL提供 的链接中找到
项目执行过程动画
动画脚本
实现这样的场景并不困难,因为所有动画都会相互跟随,并且只有一个绘制公共线的动画会持续整个动画。
此动画基于将属性
stroke-dashoffset从线长的最大值更改1975px为零。文本外观的其余动画,图标是基于改变透明度。
下面是完整的代码。单击按钮后动画开始 -开始