코딩하는 김딸기
HTML/CSS 객관식 문제 15문항 본문
1. 초기값(initial value)의 설명으로 맞는것은?
4. flex-basis 속성의 초기값(initial value)이다.
flex-basis: auto의 설명으로 가장 올바른 것은 다음과 같습니다:
- 4. flex-basis 속성의 초기값(initial value)이다.
설명:
- flex-basis: auto는 flex-basis 속성의 초기값입니다. 이 경우, flex 아이템의 기본 크기는 컨텐츠의 크기와 부모 컨테이너의 flex 컨텍스트에 따라 결정됩니다. auto는 flex 아이템의 크기를 컨텐츠에 맞추되, flex 컨테이너의 레이아웃 규칙을 따릅니다.
- flex-basis: auto는 내부 콘텐츠의 크기를 무시하지 않으며, 특정 고정값(예: px, %)만 사용할 수 있는 것이 아니라, 유연하게 콘텐츠 크기를 기반으로 계산됩니다.
- flex-basis 속성의 기본값은 auto입니다.
나머지 설명:
- 1. flex-basis: auto는 콘텐츠의 크기를 무시하지 않습니다. 콘텐츠 크기를 고려하여 기본 크기를 결정합니다.
- 2. flex-basis: auto는 항상 0으로 계산되지 않습니다. auto는 콘텐츠 기반의 크기를 설정합니다.
- 3. flex-basis 속성은 고정 px값이나 %값뿐만 아니라 auto 값도 사용할 수 있습니다.
2. line-height 속성의 초기값(initial value)은?
1. normal
line-height 속성의 초기값은 normal입니다.
설명:
- **line-height: normal**은 기본 줄 높이 값을 설정하며, 이는 브라우저의 기본 스타일에 따라 결정됩니다. 일반적으로 이 값은 텍스트의 폰트 크기와 관련된 적절한 줄 높이를 설정합니다.
- line-height 속성에 대한 다른 값들(예: 1.6, 140%, auto)은 특정 줄 높이를 설정할 때 사용될 수 있지만, 초기값은 normal입니다.
3. 다음중 상속이 지원되지 않는 속성은?
3. vertical-align
vertical-align 속성은 상속되지 않는 속성입니다.
상세 설명:
- color: 상속되는 속성입니다. 부모 요소의 color 값이 자식 요소에도 적용됩니다.
- line-height: 상속되는 속성입니다. 부모 요소의 line-height 값이 자식 요소에도 적용됩니다.
- vertical-align: 상속되지 않는 속성입니다. 이 속성은 인라인 요소나 테이블 셀에서 요소의 수직 정렬을 제어하며, 기본적으로 상속되지 않습니다.
- font-weight: 상속되는 속성입니다. 부모 요소의 font-weight 값이 자식 요소에도 적용됩니다.
4. background-image 속성의 값으로 설정 되이있는 unset에 대한 설명으로 옳은 것은?
css
background-image: unset;
3. 해당 속성의 값을 초기값(initial)으로 만들어 준다.
background-image 속성은 상속되지 않는 속성이므로 unset 키워드를 사용하면 이 속성은 초기값인 none으로 설정됩니다. 따라서 background-image: unset;은 해당 속성을 초기값으로 만들어 줍니다.
5. 다음 유효하지 않는 속성과 값 형식인 것은?
1. width: calc( 100%-20px )
이 형식은 유효하지 않습니다.
이유:
calc() 함수 안에서 연산자를 사용할 때는 연산자와 피연산자 사이에 공백이 필요합니다. 따라서 올바른 형식은 calc(100% - 20px)이어야 합니다.
나머지 옵션들은 모두 유효한 CSS 형식입니다:
- 2. color: rgb(0 0 0 / .2): 유효한 rgb 색상 표기법입니다.
- 3. background-color: rgba(0, 0, 255, 0.2): 유효한 rgba 색상 표기법입니다.
- 4. margin: 0px 0px 20px 0px: 유효한 margin 속성 형식입니다.
6. 다음 가상 클래스의 이름과 그에 따른 설명으로 틀린 것은?
1. :nth-child(1) => 형제 요소중, 2번째 요소를 선택
이 설명은 틀린 것입니다.
이유:
:nth-child(1)은 형제 요소 중 첫 번째 요소를 선택합니다. 따라서 이 가상 클래스는 2번째 요소가 아닌 1번째 요소를 선택하게 됩니다.
나머지 설명들은 모두 맞습니다:
- 2. :focus-within => 하위 요소중, 포커스 상태인 요소가 있을 때: 부모 요소가 하위 요소 중 포커스된 요소를 포함할 때 적용됩니다.
- 3. :first-child => 형제 요소중, 맨 첫번째 요소를 선택: 형제 요소 중 첫 번째 요소를 선택합니다.
- 4. :last-child => 형제 요소중, 맨 마지막 요소를 선택: 형제 요소 중 마지막 요소를 선택합니다.
7. 셀렉터 특정성 점수가 가장 높은 셀렉터를 고르시오.
CSS 셀렉터의 특정성 점수를 계산할 때는 각 셀렉터의 부분에 대해 점수를 부여하고 총합을 계산합니다. 특정성 점수는 다음과 같이 계산됩니다:
- 인라인 스타일: 1,000
- ID 선택자: 100
- 클래스, 속성, 가상 클래스 선택자: 10
- 요소 및 가상 요소 선택자: 1
주어진 셀렉터들의 특정성 점수를 계산해 보겠습니다:
- div p.wow a:hover *
- 요소 선택자: div (1), p (1), a (1), * (1)
- 클래스 선택자: .wow (1), :hover (1)
- 총합: 1 (div) + 1 (p) + 1 (a) + 1 (wildcard) + 1 (wow) + 1 (hover) = 6
- .wow > * + p
- 요소 선택자: * (1), p (1)
- 클래스 선택자: .wow (1)
- 총합: 1 (wow) + 1 (wildcard) + 1 (p) = 3
- .wrapper:nth-child(3) > a.is_active
- 요소 선택자: a (1)
- 클래스 선택자: .wrapper (1), .is_active (1)
- 가상 클래스 선택자: :nth-child(3) (1)
- 총합: 1 (wrapper) + 1 (nth-child) + 1 (a) + 1 (is_active) = 4
- #wow
- ID 선택자: #wow (1)
- 총합: 100 (ID)
따라서, ID 선택자가 포함된 셀렉터가 가장 높은 특정성 점수를 가집니다.
정답: 4. #wow
8. 다음 셀렉터의 해석으로 올바른 것은?
css
.wow.wow2 + .comp {
}
5. (보기없음)
셀렉터 .wow.wow2 + .comp의 올바른 해석은:
- .wow와 .wow2 두 클래스를 모두 가진 요소가 바로 다음 형제 요소 중 comp 클래스를 가진 요소를 선택합니다.
따라서, 제공된 보기들 중에서는 올바른 설명이 없습니다.
9. 다음 셀렉터의 해석으로 올바른 것은?
css
div + * > p {
}
1. div + * > p
이 CSS 셀렉터는 다음과 같은 의미를 가집니다:
- div + *: div 요소 바로 다음에 오는 형제 요소를 선택합니다. 이 형제 요소는 어떤 요소 타입이든 될 수 있습니다.
- > p: 이 형제 요소의 직계 자식 요소 중 p 요소를 선택합니다.
따라서, 이 셀렉터는 div 타입 요소 바로 다음에 작성된 형제 요소의 직계 자식인 p 타입 요소를 선택합니다.
10. 다음 셀렉터의 해석으로 올바른 것은?
css
.wow:has(p):has(a) {
}
3. 클래스명이 wow이면서, 하위 요소에 p 타입 요소와 a 타입 요소를 모두 가지고 있는 요소를 선택
이 셀렉터는 **wow:has(p):has(a)**로 다음과 같은 의미를 가집니다:
- :has(p): 하위 요소에 p 타입 요소가 있는 요소를 선택합니다.
- :has(a): 하위 요소에 a 타입 요소가 있는 요소를 선택합니다.
따라서 **.wow:has(p):has(a)**는 클래스명이 wow이면서 하위에 p 타입 요소와 a 타입 요소를 모두 가지고 있는 요소를 선택합니다.
이 셀렉터는 CSS4에서 도입된 :has() 가상 클래스가 사용된 예입니다. 이 가상 클래스는 하위 요소의 존재를 기준으로 요소를 선택할 수 있습니다.
11. flex-basis: auto의 설명으로 옳은 것은?
4. flex-basis 속성의 초기값(initial value)이다.
설명:
- **flex-basis: auto**는 flex-basis 속성의 초기값입니다. 이 값은 아이템의 기본 크기를 계산할 때 콘텐츠의 크기 또는 width (또는 height depending on the flex-direction) 속성을 고려하여 설정합니다.
- flex-basis: auto는 내부 콘텐츠의 크기를 무시하지 않으며, 기본적으로 콘텐츠의 크기를 기준으로 아이템의 크기를 결정합니다.
- flex-basis 속성은 auto 외에도 고정값(px, em, %, 등)과 같은 다른 값들을 사용할 수 있습니다.
따라서, flex-basis: auto는 flex-basis 속성의 초기값입니다.
12. display: block이 적용된 button요소의 특성으로 올바른 것은?
html
<!DOCTYPE html>
<html>
<head>
<style>
button {
display: block;
}
</style>
</head>
<body>
<button>버튼 요소</button>
</body>
</html>
1. button 요소의 너비가 body의 콘텐츠 영역 만큼 확장된다.
설명:
- **display: block**이 적용된 button 요소는 블록 레벨 요소가 되며, 이는 해당 요소가 가능한 전체 너비를 차지하도록 확장된다는 것을 의미합니다. 따라서 button 요소는 기본적으로 부모 요소의 콘텐츠 영역 너비만큼 확장됩니다. 이 경우, button 요소는 body의 콘텐츠 영역에 맞게 너비가 확장됩니다.
나머지 설명:
- 2. button 요소는 기본적으로 인라인 요소지만, display: block으로 설정하면 블록 레벨 요소로 변경됩니다. 따라서 버튼에 변화가 있습니다.
- 3. button 요소가 블록 레벨 요소가 되어도 margin-left: auto를 이용한 오른쪽 정렬은 적용되지 않습니다. 이 경우, margin: auto를 사용하여 수평 중앙 정렬이 가능할 수 있습니다.
- 4. display 속성의 변경은 사용자 에이전트 스타일시트에 의해 제한되지 않습니다. display: block은 버튼 요소에 적용됩니다.
13. .flex-items에게 위과 같이 작성 하였다면 해당 .flex-items 요소의 너비는 어떻게 책정 됩니까?
html
<div class="flex-container">
<div class="flex-items">Flex Items</div>
</div>
css
.flex-container {
display: flex;
flex-direction: row;
width: 800px;
}
.flex-items {
width: 300px;
flex-basis: auto;
min-width: 0;
}
2. 300px
설명:
- .flex-container는 display: flex로 설정되어 있어, 내부의 .flex-items 요소는 플렉스 컨테이너의 아이템으로 처리됩니다.
- .flex-items에 width: 300px이 설정되어 있기 때문에, 이 요소의 너비는 기본적으로 300px로 설정됩니다.
- flex-basis: auto는 요소의 기본 크기를 콘텐츠 크기 또는 width 속성에 따라 결정합니다. 여기서는 width가 300px로 설정되어 있으므로, flex-basis의 값은 무시되고 300px이 적용됩니다.
- min-width: 0은 요소의 최소 너비를 0으로 설정하지만, width: 300px이 우선하므로, 요소의 너비는 여전히 300px로 설정됩니다.
따라서 .flex-items 요소의 너비는 300px로 책정됩니다.
14. 새로운 스태킹 컨텍스트를 형성하는 속성과 값이 아닌 것은?
4. display: inline-block;
스태킹 컨텍스트를 형성하는 CSS 속성과 값은 다음과 같습니다:
- position: relative; z-index: 0; - position이 relative, absolute, 또는 fixed로 설정되고 z-index가 0 이상의 값을 가지면 새로운 스태킹 컨텍스트를 형성합니다.
- opacity: 0.5; - opacity 값이 1보다 작으면 새로운 스태킹 컨텍스트를 형성합니다.
- display: block; transform: rotate(45deg); - transform 속성이 2D 또는 3D 변환을 포함하면 새로운 스태킹 컨텍스트를 형성합니다.
**display: inline-block;**는 새로운 스태킹 컨텍스트를 형성하지 않습니다.
따라서, **4. display: inline-block;**가 새로운 스태킹 컨텍스트를 형성하는 속성과 값이 아닙니다.
15. 컨테이닝 블록에 대한 설명으로 틀린 것은?
3. margin-top 값을 %로 지정하면 해당 요소의 컨테이닝 블록 너비를 기준으로 백분율 계산 되어진다.
이 설명이 틀린 것입니다.
이유:
- margin-top 값을 백분율로 지정할 때, 그 백분율은 컨테이닝 블록의 높이를 기준으로 계산됩니다. 따라서 margin-top이 컨테이닝 블록의 너비를 기준으로 계산된다는 설명은 잘못된 것입니다.
다른 설명들:
- 컨테이닝 블록은 요소의 위치나 크기 지정의 기준이 되는 상위 영역을 의미한다.
- 맞는 설명입니다. 컨테이닝 블록은 해당 요소가 위치할 때 기준이 되는 상위 요소입니다.
- 특정 요소에 position: absolute를 부여하면 원하는 모든 요소를 특정 요소의 컨테이닝 블록으로 만들 수 있다.
- 맞는 설명입니다. position: absolute가 적용된 요소는 최근의 position이 relative, absolute, fixed, 또는 sticky로 설정된 조상 요소를 컨테이닝 블록으로 삼습니다.
- width: 100%는 해당 요소의 컨테이닝 블록 너비를 기준으로 백분율 계산 되어진다.
- 맞는 설명입니다. width: 100%는 컨테이닝 블록의 너비를 기준으로 합니다.