svg — Как нарисовать прямоугольник с выгнутыми сторонами в CSS?
Вопрос задан
Изменён 6 месяцев назад
Просмотрен 128 раз
Нужно создать такой прямоугольник как на рисунке — все стороны слегка выгнуты наружу, буквально на несколько пикселей, углы скруглены. Пробовал и с помощью border-radius, и с помощью clip-path — не вышло. Эта форма будет использоваться как базовая кнопка с текстом внутри. Нужна помощь.
- css
- svg
2
Рассмотрите, как писал в комментарии @andreymal, вариант решения SVG.
Это позволит точно повторить размеры и соотношения сторон, как в задании.
К тому же решение будет адаптивным и выглядеть одинаково на всех гаджетах.
#1. Загружаете растровое изображение в векторный редактор — Inkscape
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 1592 844" preserveAspectRatio="xMinYMin meet" >
<image xlink:href="https://i.stack.imgur.com/P4b6y.jpg" />
</svg>#2. По контуру наносите узловые точки и с помощью рычагов управления этих точек добиваетесь полного совпадения с контуром исходной фигуры.
#3. Сохраняете файл в формате SVG
#4. Добавляете строку для вывода текста внутри SVG (кнопки)
<text y="50%" x="50%" font-size="300px" font-family="sans-serif" font-weight="700" fill="GREY" text-anchor="middle" alignment-baseline="central" >START </text>
#5. svg оборачиваете в родительский контейнер div и теперь можно размещать кнопку в любом месте и менять её размеры, изменяя width и height родительского контейнера.
width:50vw; height:50vh;
<style> .button { width:50vw; height:50vh; } </style> <div> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" preserveAspectRatio="xMinYMin meet" viewBox="0 0 1592 844"> <path d="M157.6 110.3c231.4-7.5 433.4-13.7 650-13.6 209.7 0 439.4 4.6 628.7 13.6 20.7 1 43.4 25.2 44.8 46.7 6.8 105.6 12.3 189.3 11.6 284.1-.5 82.9-6.3 171.5-13.6 248.2a46.9 46.9 0 0 1-44.7 41.8c-201.8 14.2-412.5 18-621.9 18.5-219 .5-414.7-2.2-656.8-16.5-21-1.3-45.6-15.8-46.7-42.9-2.8-65.6-9.4-166.2-10.6-251-1.5-94.8 4.1-190.4 12.5-286.1 2-22.9 15-41.8 46.7-42.8z" fill="none" stroke="black" stroke-width="20"/> <text y="50%" x="50%" font-size="300px" font-family="sans-serif" font-weight="700" fill="GREY" text-anchor="middle" alignment-baseline="central" >START </text> </svg> </div>
width:10vw; height:10vh;
<style>
.button {
width:10vw;
height:10vh;
}
</style>
<div>
<svg xmlns="http://www.
w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" preserveAspectRatio="xMinYMin meet" viewBox="0 0 1592 844">
<path d="M157.6 110.3c231.4-7.5 433.4-13.7 650-13.6 209.7 0 439.4 4.6 628.7 13.6 20.7 1 43.4 25.2 44.8 46.7 6.8 105.6 12.3 189.3 11.6 284.1-.5 82.9-6.3 171.5-13.6 248.2a46.9 46.9 0 0 1-44.7 41.8c-201.8 14.2-412.5 18-621.9 18.5-219 .5-414.7-2.2-656.8-16.5-21-1.3-45.6-15.8-46.7-42.9-2.8-65.6-9.4-166.2-10.6-251-1.5-94.8 4.1-190.4 12.5-286.1 2-22.9 15-41.8 46.7-42.8z" fill="none" stroke="black" stroke-width="20"/>
<text y="50%" x="50%" font-size="300px" font-family="sans-serif" font-weight="700" fill="GREY" text-anchor="middle" alignment-baseline="central" >START </text>
</svg>
</div>2
#abc, #def{
display: inline-block;
}
#abc{
margin-left: 50px;
padding: 5px;
border-top: 3px solid black;
border-bottom: 3px solid black;
border-radius: 100% / 10%;
overflow: visible;
width: 150px;
height: 150px;
}
#def{
border-right: 3px solid black;
border-left: 3px solid black;
border-radius: 10% / 100%;
position: relative; left: -15px;
width: 175px;
height: 150px;
}<div> <div> </div> </div>
углы правда тусклые, но если не нравится, всегда есть svg
UPD: впрочем.
..
div{display:grid;
grid-template-columns: 15px 150px 150px 15px;
grid-template-rows: 15px 150px 150px 15px;
}
#a, #c, #f, #h{border-radius: 100% 0 / 100% 0;}
#b, #d, #e, #g{border-radius: 0 100% / 0 100%;}
#a, #b, #c, #d{border-top: 5px solid black;}
#e, #f, #g, #h{border-bottom: 5px solid black;}
#a, #c, #e, #g{border-left: 5px solid black;}
#b, #d, #f, #h{border-right: 5px solid black;}
#a{grid-row: 1;grid-column: 2;}
#b{grid-row: 1;grid-column: 3;}
#c{grid-row: 2;grid-column: 1;}
#d{grid-row: 2;grid-column: 4;}
#e{grid-row: 3;grid-column: 1;}
#f{grid-row: 3;grid-column: 4;}
#g{grid-row: 4;grid-column: 2;}
#h{grid-row: 4;grid-column: 3;}<div> <b>a</b> <b>b</b> <b>c</b> <b>d</b> <b>e</b> <b>f</b> <b>g</b> <b>h</b> </div>
2
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Народные картографы берут лупу
У карты OpenStreetMap нет масштаба.
Другими словами, одна и та же база геоданных используется для обзорки всей планеты и для схемы прохода между сараем и туалетом. Когда мы рисуем залив или люк на дороге, мы не задумываемся, на каких масштабах и как их будут отображать. Дело редакторов — внести максимум данных, до уровня, когда не приходит в голову мысль остановиться. Дай осмерам волю — они лес замапят как набор деревьев, с грибами и ягодами между ними.
Отсутствие рамок неудобно пользователям данных. Оно означает, что OpenStreetMap категорически нельзя использовать без предварительной обработки. Для любой цели — поиска, прокладки маршрутов, отображения, — данные нужно отфильтровать: например, убрать слишком мелкие здания и боковые пути железных дорог. Затем нужно упрощать геометрию: лес в парках и мелкие реки часто обклацаны с сантиметровой точностью. Чтобы сделать карту, на которую не больно смотреть, без подсказок опытного осмера не обойтись.
Карта Яндекса не такая. В неё нельзя всматриваться бесконечно: рано или поздно пустоты затмевают детали.
У этой карты есть расчётный масштаб: примерно 250 метров в сантиметре (если вы помните детализацию карт Генштаба). Для всех целей Яндексу этого достаточно. Именно поэтому народные картографы должны были страдать. Правилами и модераторами им били по рукам, когда они рисовали слишком мелкие детали.
© Юрий Дегтярев, mosday.ru
Вся история изменений правил — это история понижения масштаба. 2016: у домов появились подъезды. 2017: разрешили рисовать гаражи-ракушки и дороги в два ребра. 2018: можно рисовать трёхмерные модели зданий, указать плохое состояние дороги и доступность проезда для велосипедистов. 2019: разрешили соединять графы пешеходных дорог, рисовать парковочные карманы и схемы помещений. 2020: площадки отдыха вдоль дорог и сезонные заведения и дороги.
Нынешний год пускает всю диктатуру масштаба яндекс-карт под откос. Народные картографы одновременно ликуют и не понимают, где им остановиться. Сначала в марте на подъездах разрешили расставлять номера квартир. Казалось бы, осмеры делали это первыми.
Но, во-первых, у редактора яндекса форма ввода удобнее, и сразу предлагает заполнить квартиры по этажам. А во-вторых, всего за две недели их редакторы ввели в России столько же подъездов с квартирами, сколько в OSM — за всё время.
Теперь пришли сразу две поправки, разрешающие рисовать скамейки и «декоративные» заборы. Это невиданная степень свободы для народных картографов. В полутора сотнях комментариев они пробуют стены детализации на прочность: «отбойники можно?», «а заборы между участками в частном секторе?», «скамейки со спинкой или без?», «а скамейки в торговых центрах?», «урны скоро будем?», «а каждая скамейка считается за отдельную правку?» Сотрудники яндекса едва успевают отвечать отказами — но волна новых микромапперов рискует смыть их критерии полезности и порядок на картах.
Возможность нарисовать что угодно отличает OpenStreetMap от всех остальных карт. Мы слышали про истории успеха с пожарными гидрантами, отдельностоящими деревьями и знаками на магистралях. Этой карте нет альтернатив по скорости обновления и глубине детализации.
Она была первой в этом роде, и поэтому все, кому важны данные, а не просто посмотреть, взяли OSM в оборот.
Но когда твой проект обгоняет все другие геоинформационные системы на двадцать лет, это не значит, что все другие отомрут. Как мы видим на примере яндекс-карт, это лишь означает, что через двадцать лет тебя догонят и обгонят. Преимущества открытого проекта тают с каждым годом. Остаётся только эта самая открытость — но и она приносит больше проблем, чем пользы. Что нужно сделать для OpenStreetMap, чтобы на вопрос, где регистрироваться, не отвечать «ну эээ…»?
Как нарисовать увеличительное стекло шаг за шагом
от easylinedrawing
В этом уроке показано, как нарисовать увеличительное стекло всего за четыре шага. Он включает в себя очень простые примеры рисования и быстрые советы.
Пошаговое рисование с помощью увеличительного стекла Вы можете увидеть предварительный просмотр шагов рисования в приведенном выше примере. Так как увеличительное стекло не очень сложный объект, урок должен быть достаточно простым даже для новичков.![]()
Если вам трудно рисовать круги на раме/стекле, вы можете использовать циркуль или другие вспомогательные средства для рисования.
Как и в большинстве учебных пособий EasyDrawingTips, рекомендуется начинать рисунок карандашом с легких линий, которые легко стереть в случае ошибки. Позже вы можете затемнить линии черной ручкой/маркером.
Шаг 1. Нарисуйте круг, чтобы очертить рамку увеличительного стекла
Рисунок круга увеличительного стеклаНачните с создания круга, чтобы очертить внешнюю часть рамки, в которой находится увеличительное стекло. Как уже упоминалось, вы можете использовать компас, чтобы помочь вам в этом, если вам трудно нарисовать круг. Если у вас его нет под рукой, вы можете вместо этого использовать какой-нибудь круглый предмет, например чашку, и обвести его.
Шаг 2. Нарисуйте ручку
Чертеж ручки увеличительного стекла Ручка будет состоять из двух частей: большей области, за которую ее обычно держат, и меньшей, более узкой части, которая соединяет ее с рамой.![]()
Сначала нарисуйте большую часть. Придайте ему форму длинного прямоугольника со слегка закругленными углами. Затем добавьте немного между ним и рамкой. Вы можете нарисовать его всего парой прямых линий.
Шаг 3. Обведите контур стекла и завершите штриховой рисунок
Рисование линии увеличительного стеклаЗавершите рисование линии увеличительного стекла, добавив еще один круг чуть меньшего размера внутри круга из предыдущего шага. Этот круг задаст ширину рамы, а также очертит само стекло.
Вы можете попробовать нарисовать этот круг вручную, используя внешний круг в качестве ориентира, или вы можете снова использовать циркуль или попытаться обвести другой круглый объект, который немного меньше по размеру.
После этого вы можете пройтись по рисунку черной ручкой или маркером (как упоминалось в начале урока). В качестве альтернативы вы также можете затемнить свои линии, обводя их карандашом.
Шаг 4. Раскрасьте увеличительное стекло
Рисунок с увеличительным стеклом Чтобы закончить рисунок, вы можете раскрасить увеличительное стекло.
Цветные карандаши или краски могут быть хорошим вариантом для этого, так как маркеры могут быть слишком яркими.
Сделайте стекло светло-голубым, рамку светло-серой и ручку темно-серой или черной.
При окрашивании стекла оставьте небольшую белую область для блика (свет, отражающийся от его гладкой поверхности) в форме, как показано в примере. Вы можете слегка обвести его синим карандашом, чтобы его было легче раскрасить. Позже вы можете слегка заштриховать его синим цветом, но не до такой степени, чтобы он сливался с остальной частью стекла.
Заключение
Увеличительное стекло — довольно простой объект, который в целом не очень сложно нарисовать. Если у вас возникли проблемы с кругами, вы можете использовать некоторые вспомогательные средства для рисования, чтобы помочь вам (как уже объяснялось).
Более похожий учебник по рисованию простых объектов см.:
- Как рисовать очки шаг за шагом
- Как нарисовать ромб шаг за шагом
- Как рисовать карандашом шаг за шагом
- Как нарисовать ручку шаг за шагом
- Как нарисовать конверт шаг за шагом
- Как нарисовать топор шаг за шагом
Учебники по рисованию
Инструмент
Как нарисовать увеличительное стекло
165 акций
Узнайте, как нарисовать великолепно выглядящее Рисунок Увеличительное стекло, пошаговые инструкции и видео-инструкции .
Следуя простым шагам, вы тоже сможете легко нарисовать красивое увеличительное стекло.
Перейти к пошаговым инструкциям.
Полный чертеж увеличительного стеклаУвеличительное стекло или ручная линза представляет собой выпуклую оптическую линзу, закрепленную на ручке и используемую для визуального увеличения объектов. Они обычно используются для чтения, изучения драгоценностей или наблюдения за растениями и насекомыми.
Считается, что увеличительные линзы использовались в Средиземноморье и на Ближнем Востоке на протяжении тысячелетий. Первое определенное упоминание об увеличительном стекле можно найти в The Clouds 9.0088 Аристофана, написанный в 424 г. до н.э. Сегодня они являются обычными предметами в домах, классах и даже карманными ножами.
Увеличительные стекла обычно ассоциируются с учеными и детективами, в том числе со знаменитым Шерлоком Холмсом. Его и тех, кто ему подражает, можно узнать по увеличительному стеклу, классической шляпе охотника на оленей и шерстяному плащу.
Увеличительное стекло также является символом эмодзи Unicode. Веб-сайты, приложения и другие компьютерные программы часто используют изображение увеличительного стекла, чтобы пометить строку поиска.
Прокрутите вниз, чтобы загрузить PDF-файл этого руководства.
Увеличительные стекла также часто изображаются в контексте мелких предметов. Одним из примеров является анимационный фильм Antz, , когда ребенок использует увеличительное стекло, чтобы сфокусировать солнечные лучи на муравье по имени Z.
Хотите найти все подсказки, чтобы нарисовать мультяшную лупу? Мы разбираемся в этом простом пошаговом руководстве по рисованию мультяшных объектов. Все, что вам понадобится, это карандаш, ластик и лист бумаги. Вы также можете раскрасить готовый рисунок.
Если вам понравился этот урок, см. также следующие руководства по рисованию: Драгоценные камни, Микроскоп и Кольцо с бриллиантом.
Пошаговые инструкции по рисованию увеличительного стекла
Как нарисовать красивое увеличительное стекло для детей, начинающих и взрослых.
Шаг 11. Начните с рисования большого овала. Это очерчивает само стекло. Нарисуйте изогнутую линию вдоль одной стороны, очерчивая узкую форму полумесяца. Это придает стеклу трехмерный вид.
Простое рисование с помощью увеличительного стекла — шаг 2
2. Нарисуйте еще один овал большего размера вокруг первого. Это обод, который держит стекло. Нарисуйте изогнутую линию вокруг широкой стороны, чтобы придать ободу трехмерный вид.
Easy Magnifying Glass Drawing – Step 3
3. Нарисуйте U-образную линию у основания обода, стирая при необходимости. Нарисуйте линию в форме буквы «С» через открытый конец буквы «U».
Easy Magnifying Glass Drawing — Шаг 4
4. Используйте изогнутую линию, чтобы заключить вытянутую закругленную форму, образующую ручку увеличительного стекла.
Простое рисование с помощью увеличительного стекла. Шаг 5
5. Нарисуйте серию изогнутых линий на рукоятке.
Easy Magnifying Glass Drawing – Step 6
6.
Используйте ряд почти прямых линий, чтобы обвести высокую незавершенную трапецию. Это станет буквой «А».
Простое рисование с помощью увеличительного стекла. Шаг 7
7. С помощью прямых линий нарисуйте контур буквы «А» и маленького треугольника в ее центре.
Добавьте больше деталей к изображению с увеличительным стеклом — Шаг 8
8. Нарисуйте контур буквы «В», нарисовав полукруги в ее верхней и нижней частях.
Завершите контур вашего рисунка с увеличительным стеклом — шаг 9
9. Используйте изогнутые и прямые линии, чтобы обвести букву «С».
Раскрась свое увеличительное стекло для рисования
Раскрась свое мультяшное увеличительное стекло. Он может быть разных цветов — коричневое дерево, серый металл или цветной пластик.
Дополнительные уроки по рисованию вещей см. в посте «100 простых и забавных идей для рисования».
Простое, пошаговое руководство по рисованию с увеличительным стекломНажмите ЗДЕСЬ, чтобы сохранить урок в Pinterest!
Учебное пособие по рисованию с помощью увеличительного стекла — легко и весело Страницы для печати
УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ ДЛЯ УЧАСТНИКОВ
Все еще видите рекламу или не можете загрузить PDF-файл?
Во-первых, убедитесь, что вы вошли в систему.

button {
width:50vw;
height:50vh;
}
</style>
<div>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" preserveAspectRatio="xMinYMin meet" viewBox="0 0 1592 844">
<path d="M157.6 110.3c231.4-7.5 433.4-13.7 650-13.6 209.7 0 439.4 4.6 628.7 13.6 20.7 1 43.4 25.2 44.8 46.7 6.8 105.6 12.3 189.3 11.6 284.1-.5 82.9-6.3 171.5-13.6 248.2a46.9 46.9 0 0 1-44.7 41.8c-201.8 14.2-412.5 18-621.9 18.5-219 .5-414.7-2.2-656.8-16.5-21-1.3-45.6-15.8-46.7-42.9-2.8-65.6-9.4-166.2-10.6-251-1.5-94.8 4.1-190.4 12.5-286.1 2-22.9 15-41.8 46.7-42.8z" fill="none" stroke="black" stroke-width="20"/>
<text y="50%" x="50%" font-size="300px" font-family="sans-serif" font-weight="700" fill="GREY" text-anchor="middle" alignment-baseline="central" >START </text>
</svg>
</div>