#javascript #html #jquery
Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow на русском. Closed 8 месяцев назад. Как изобразить на странице такие символы как на скриншоте? Имеется ввиду фигурная скобка и расположение последующих за ней элементов.
Ответы
Ответ 1
Так годится? Раскрасишь сам. .row { display: flex; align-items: center; line-height: 2em; text-align: center; } div { border-radius: .5em; } .badge { min-width: 2em; background: silver; margin: .25em; } .lbrace { border-left: 1px solid; padding-left: .25em; margin-left: .5em; position: relative; display: flex; flex-direction: column; align-items: flex-start; } .lbrace:before { content: ""; width: .5em; height: 0; border-top: 1px solid; position: absolute; right: 100%; top: 0; bottom: 0; margin: auto; }Версия с более красивой скобкой (через фон, следующая лучше): .row { display: flex; align-items: center; line-height: 2em; text-align: center; } div { border-radius: .5em; } .badge { min-width: 2em; background: silver; margin: .25em; } .lbrace { border: 1px solid transparent; border-left-color: black; border-right-color: white; background: linear-gradient(to right, white, white), linear-gradient(to right, black .75em, white .75em); background-clip: padding-box, border-box; padding-left: .25em; margin-left: .5em; position: relative; display: flex; flex-direction: column; align-items: flex-start; } .lbrace:before { content: ""; width: .5em; height: 0; border-top: 1px solid; position: absolute; right: 100%; top: 0; bottom: 0; margin: auto; } ×1.5ВШ×2ПИ ещё одна версия: .row { display: flex; align-items: center; line-height: 2em; text-align: center; } div { border-radius: .5em; } .badge { min-width: 2em; background: silver; margin: .25em; } .lbrace { border: 1px solid transparent; background-clip: padding-box, border-box; padding-left: .25em; margin-left: .5em; position: relative; display: flex; flex-direction: column; align-items: flex-start; } .lbrace:before { content: ""; width: .5em; height: 0; border-top: 1px solid; position: absolute; right: 100%; top: 0; bottom: 0; margin: auto; } .lbrace:after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: .5em; border: 1px solid; border-radius: .5em 0 0 .5em; border-right: none; } ×1.5ВШ×2П ×1.5ВШ×2ПОтвет 2
* { box-sizing: border-box; font-family: sans-serif; } .wrapper { padding: 7px; margin: 50px 0 0 80px; position: relative; } .wrapper:before { content: ''; display: block; position: absolute; width: 10px; border: 2px solid gray; border-right: 0; border-radius: 5px 0 0 5px; top: 0; bottom: 0; left: 0; } .wrapper:after { content: ''; position: absolute; display: block; width: 10px; height: 0; border: 1px solid gray; left: -12px; top: 0; bottom: 0; margin: auto; } .v, .p, .sh, .poltora { text-align: center; font-size: 22px; padding-top: 8px; } .v, .p { width: 40px; height: 40px; border-radius: 5px; color: white; } .v { background-color: #231f20; display: inline-block; margin-bottom: 10px; } .sh { display: inline-block; background-color: #d1d6d9; height: 40px; width: 55px; vertical-align: top; border-radius: 0 0 5px 5px; } .p { background-color: #be2027; } .poltora { position: absolute; height: 40px; width: 55px; border-radius: 5px; background-color: #f9bf5a; top: 0; bottom: 0; margin: auto; left: -70px; }ВШх2Пx1.5Ответ 3
CSS Вариант .wrapper{ width: 200px; display: flex; flex-wrap: wrap; } .content { height: 80px; width: 80px; display: flex; flex-wrap: wrap; background-color:wheat; border-radius:5px; } .brace-l, .brace-r { width: 24px; display: flex; flex-wrap: wrap; } .brace-l div, .brace-r div { width: 10px; height: 20px; } .brace-l div:nth-child(2), .brace-r div:nth-child(6) { border-top-left-radius: 5px; border-left: 1px solid; } .brace-l div:nth-child(3), .brace-r div:nth-child(7) { border-bottom-right-radius: 5px; border-right: 1px solid; } .brace-l div:nth-child(5), .brace-r div:nth-child(1) { border-top-right-radius: 5px; border-right: 1px solid; } .brace-l div:nth-child(8), .brace-r div:nth-child(4){ border-bottom-left-radius: 5px; border-left: 1px solid; }Тот же вариант, только с программно созданным css document.querySelectorAll('.brace').forEach(el => { el.innerHTML = Array(8).fill(0).map(() => '').join(''); }); let s = document.createElement('style'); s.innerHTML = [[2,6],[5,1],[8,4],[3,7]].map((e,i) => `.brace.l div:nth-child(${e[0]}), .brace.r div:nth-child(${e[1]}) { border-${i<2 ? 'top' : 'bottom'}-${i%2 ? 'right' : 'left'}-radius: 5px; border-${i%2 ? 'right' : 'left'}: 1px solid; }`).join('\n'); document.head.append(s); .brace { width: 24px; display: flex; flex-wrap: wrap; } .brace div { width: 10px; height: 20px; }
Комментариев нет:
Отправить комментарий