CSS 배틀 #1 - 심플리 스퀘어
주어진 이미지만 스타일시트를 다시 만들어야 합니다. 가능한 한 적은 수의 문자로 달성한 경우 출력이 일치하는 정도와 추가 점수에 대한 대략적인 퍼센트를 얻습니다.
첫 번째 문제에 대한 가장 짧은 해결책을 본 후, 나는 높은 점수에 신경 쓰지 않고 대신 학습 부분에 집중하기로 결정했습니다. 이유가 궁금하시다면 여기에 그 해결책이 있습니다.
<img style=box-shadow:0+0+0+2in#b5e0ba,0+0+0+5in#5d3a3a>
점수는 솔루션이 첫 번째는 정확하고 두 번째는 짧을 것을 요구하기 때문에 정확성에 집중하는 것을 선호합니다. 그리고 CSS는 대안을 제공하는 데 매우 강력하기 때문에 동일한 질문에 대해 다른 답변을 제시하려고 노력할 것입니다.
1. 절대값
첫 번째는 매우 간단합니다. 200 x 200 픽셀의 정사각형 분할을 만들고 배경색을 지정합니다. 일반적인 문서 흐름은 위에서 아래로, 왼쪽에서 오른쪽으로 이루어지기 때문에 사각형은 화면의 왼쪽 상단 모서리에 있어야 합니다. 그렇지 않다는 것을 제외하고. 브라우저 기본 여백을 제거해야 합니다.
브라우저 기본값을 제거하는 것을 정규화라고 하며 a splendid library which does exactly that이 있습니다(모든 것을 위한 라이브러리가 있음). 소스 코드를 자세히 읽어보는 것이 좋습니다. 소스 코드는 짧고 설명이 포함된 주석이 있습니다. 여백에만 관심이 있기 때문에 배경색도 가져오는 본문 태그에 대해 여백을 0으로 설정합니다.
<div></div>
<style>
body {
margin: 0;
background: #5d3a3a;
}
div {
width: 200px;
height: 200px;
background: #b5e0ba;
}
</style>
2. 상대적 가치
하드코딩된 값에 얽매이지 않기 위해 width를
calc(100vw / 2)
로, height를 calc(100vh * 2 / 3)
로 바꿀 수 있습니다.<div></div>
<style>
body {
margin: 0;
background: #5d3a3a;
}
div {
width: calc(100vw / 2);
height: calc(100vh * 2 / 3);
background: #b5e0ba;
}
</style>
calc()
를 사용하면 동일한 계산 내에서 서로 다른 단위를 혼합할 수 있습니다. 또는 너비가 뻔하기 때문에 50vw
로 직접 작성할 수 있습니다. 66vh
는 정답으로 인정되지 않습니다. 66.6vh
그러나 될 것입니다.3. 테두리
지금까지 솔루션은 크기 계산만 다를 뿐 거의 동일한 논리를 따르고 있었습니다. 여기 또 다른 접근법이 있습니다. 같은 사각형을 배치할 수 있지만 이번에는 본문 배경을 색칠하는 대신 테두리를 만들면 어떨까요?
<div></div>
<style>
div {
margin: -8px;
width: 200px;
height: 200px;
background: #b5e0ba;
border-right: 200px solid #5d3a3a;
border-bottom: 200px solid #5d3a3a;
}
</style>
여기서 여백을 음수 값으로 설정하는 것은 the default margin의 영향을 제거하고 두 태그의 스타일을 지정하지 않기 위해서만 수행됩니다.
4. 박스 섀도우
마지막 것은 가장 짧은 솔루션에서 영감을 얻었습니다. 분명히 기존 개체를 복제하여 그림자를 만드는 것이 가능합니다.
box-shadow
는 스테이플 효과를 만드는 데 사용됩니다. generator for that! 처음 두 값은 X 및 Y 오프셋이며 음수일 수 있습니다. 세 번째는 흐림 반경입니다. 그리고 색상 이전의 마지막은 크기를 담당하는 확산 반경입니다. 이 경우 전체400 x 300
화면을 덮을 수 있을 만큼 충분히 큰 값으로 임의로 설정했습니다.<div></div>
<style>
div {
margin: -8px;
width: 50vw;
height: 66.6vh;
background: #b5e0ba;
box-shadow: 0 0 0 200px #5d3a3a;
}
</style>
이 솔루션 중 어떤 것을 선호하십니까? 당신은 다른 사람을 알고 있습니까?
Reference
이 문제에 관하여(CSS 배틀 #1 - 심플리 스퀘어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pheeria/css-battle-1-simply-square-c19텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)