Шестиугольный фон CSS - PullRequest
0 голосов
/ 10 мая 2018

Это не вопрос о том, как сделать отдельные элементы шестиугольной формы.Таких много.

Это вопрос, чтобы узнать, есть ли способ создать фон с шестиугольниками чистого CSS.

Я получил вид , создав треугольники :

*{
  margin:0;
  padding:0;
  border-width:0;
}
html{
  height:100%;
}
body{
  height:100%;
  background: repeating-linear-gradient(120deg, transparent 0px, transparent 44px, rgba(0, 85, 130, 0.5) 50px, transparent 56px, transparent 100px), repeating-linear-gradient(240deg, transparent 0px, transparent 44px, rgba(0, 85, 130, 0.5) 50px, transparent 56px, transparent 100px), repeating-linear-gradient(0deg, transparent 0px, transparent 44px, rgba(0, 85, 130, 0.5) 50px, transparent 56px, transparent 100px), #fffcfc;
  background-position:34px, 0, 0;
  background-attachment:fixed,fixed,fixed;
}

Но есть пара проблем:

  1. Размер фона влияет на размещение линий.
  2. Это треугольники, и я не могу придумать, как "покрыть" линии, которые появляются внутри образованных ими шестиугольников.

Есть ли способ сделать это, или я должен отказаться и использовать изображение?

1 Ответ

0 голосов
/ 10 мая 2018

См. Эту статью: http://lea.verou.me/css3patterns/#honeycomb

Демонстрация, чтобы сделать это будущее, в случае, если ссылка будет отключена:

body {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle farthest-side at 0% 50%,#fb1 23.5%,rgba(240,166,17,0) 0)21px 30px,
    radial-gradient(circle farthest-side at 0% 50%,#B71 24%,rgba(240,166,17,0) 0)19px 30px,
    linear-gradient(#fb1 14%,rgba(240,166,17,0) 0, rgba(240,166,17,0) 85%,#fb1 0)0 0,
    linear-gradient(150deg,#fb1 24%,#B71 0,#B71 26%,rgba(240,166,17,0) 0,rgba(240,166,17,0) 74%,#B71 0,#B71 76%,#fb1 0)0 0,
    linear-gradient(30deg,#fb1 24%,#B71 0,#B71 26%,rgba(240,166,17,0) 0,rgba(240,166,17,0) 74%,#B71 0,#B71 76%,#fb1 0)0 0,
    linear-gradient(90deg,#B71 2%,#fb1 0,#fb1 98%,#B71 0%)0 0 #fb1;
    background-size:40px 60px;
}

Вот версия SCSS (https://jsfiddle.net/ajnd782w/):

$primary-color: #fb1;
$line-color: #B71;
$transparent: transparent;
$size: 30px;

body {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle farthest-side at 0% 50%,$primary-color 23.5%,$transparent 0)($size * .7) $size,
    radial-gradient(circle farthest-side at 0% 50%,$line-color 24%,$transparent 0)($size * .6129) $size,
    linear-gradient($primary-color 14%,$transparent 0, $transparent 85%,$primary-color 0)0 0,
    linear-gradient(150deg,$primary-color 24%,$line-color 0,$line-color 26%,$transparent 0,$transparent 74%,$line-color 0,$line-color 76%,$primary-color 0)0 0,
    linear-gradient(30deg,$primary-color 24%,$line-color 0,$line-color 26%,$transparent 0,$transparent 74%,$line-color 0,$line-color 76%,$primary-color 0)0 0,
    linear-gradient(90deg,$line-color 2%,$primary-color 0,$primary-color 98%,$line-color 0%)0 0 $primary-color;
    background-size:($size * 1.333) ($size * 2);
}

Никогда не сдавайся.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...