Страницы

Поиск по вопросам

пятница, 13 декабря 2019 г.

Математические скобки [закрыт]

#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; }
×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; 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
П


Ответ 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; }


Комментариев нет:

Отправить комментарий