Кто может подсказать, как можно это сделать не используя картинку?

423
03 июня 2017, 15:59

Как сделать бордер необычный + линии к каждому блоку? Обязательно адаптивно.

Answer 1
  1. Верхний блок с двухцветной границей делается псевдоэлементами: они позиционируются под блоком, выдвигаются на нужное количество пикселей влево и вправо, их ширина вычисляемая. Благодаря таким махинациям границу можно анимировать при наведении, например, что недостижимо если просто поставить псевдоэлементам border.

  2. Линии к блокам сделаны на SVG. В полилайнах есть не очевидные магические числа 197 и 1003, они высчитаны по формуле ((ширина обертки − сумма промежутков между блоками) / количество блоков) / 2 = ((1200 - 20*2) / 3) / 2 = 193.333 (первая координата), 1200 - 193 = 1007 (вторая координата). Далее указываем правильный viewBox и смотрим результат.

body { 
  overflow-x: hidden; 
} 
 
.top { 
  text-align: center; 
  margin-bottom: 5px; 
} 
 
button { 
  background: #ccc; 
  text-transform: uppercase; 
  position: relative; 
  padding: 15px 25px; 
  border: none; 
  font-weight: bold; 
  font-family: sans-serif; 
} 
 
button:before, 
button:after { 
  position: absolute; 
  content: ' '; 
  left: -2px; 
  top: -2px; 
  width: calc(50% + 2px); 
  height: calc(100% + 4px); 
  background-color: royalblue; 
  transition: transform .2s; 
  transform-origin: 100% 100%; 
  z-index: -1; 
} 
 
button:after { 
  left: auto; 
  right: -2px; 
  background-color: tomato; 
  will-change: transform; 
  z-index: -1; 
} 
 
button:hover:after { 
  transform: scaleX(2.01); 
} 
 
.lines { 
  max-width: 1200px; 
  margin: auto; 
} 
 
.lines polyline { 
  stroke: grey; 
} 
 
.blocks { 
  max-width: 1200px; 
  margin: auto; 
} 
 
.blocks__inner { 
  display: flex; 
  justify-content: space-between; 
  margin: 0 -10px; 
} 
 
.item { 
  flex-grow: 1; 
  margin: 0 10px; 
  height: 100px; 
  background: grey; 
}
<div class="top"> 
  <button>Для кого этот курс</button> 
</div> 
 
<div class="lines"> 
  <svg viewBox="0 0 1200 150"> 
    <polyline points="600,0 193,150" /> 
    <polyline points="600,0 600,150" /> 
    <polyline points="600,0 1007,150" /> 
  </svg> 
</div> 
 
<div class="blocks"> 
  <div class="blocks__inner"> 
    <div class="item"></div> 
    <div class="item"></div> 
    <div class="item"></div> 
  </div> 
</div>

Answer 2

Все можно сделать, но картинкой гораздо проще.

.wrap { 
  width: 200px; 
  height: 30px; 
  background: #757575; 
  position: relative; 
} 
 
.wrap div { 
  position: absolute; 
} 
 
.inner { 
  width: 196px; 
  height: 26px; 
  margin: 2px; 
  background: #b3b3b3; 
  font-family: verdana; 
  font-size: 13px; 
  line-height: 23px; 
  text-align: center; 
} 
 
.left, 
.right { 
  width: 100px; 
  height: 30px; 
} 
 
.left { 
  background: black; 
} 
 
.right { 
  background: royalblue; 
  right: 0; 
}
<div class="wrap"> 
  <div class="left"></div> 
  <div class="right"></div> 
  <div class="inner">ДЛЯ КОГО ЭТОТ КУРС</div> 
  <div>

READ ALSO
Doctrine 1.2, автоматическое обрезание для полей в таблице

Doctrine 1.2, автоматическое обрезание для полей в таблице

Использую Doctrine 12 При изменении/добавлении записи получаю исключение

397
Лишняя строка при обращении к БД

Лишняя строка при обращении к БД

Всем доброго времениСуть вопроса такова : есть 2 таблицы - первая: Куплено и вторая: Продано

388
Помогит разобратся с синтаксисом RedBeanPhp

Помогит разобратся с синтаксисом RedBeanPhp

Вот то как я сделал запрос,но он не верный $posts = R::findAll('news' , 'name LIKE ?', %array($data['seach'])%); Помогите понять где ставить знаки процентов

296
проверка версии pdo и методы

проверка версии pdo и методы

Доброго времени суток! Новичок в PDO, да и с php шапочное знакомствоПытаюсь положить значения в базу данных

304