웹 프론트엔드 CSS 튜토리얼 꼭 알아야 할 CSS 버그와 해결 방법

꼭 알아야 할 CSS 버그와 해결 방법

Apr 25, 2017 pm 02:39 PM

많은 프로그래밍 언어에 비해 CSS는 배우기 매우 쉬운 언어입니다. 구문은 간단하고 명확하며 표현적 특성으로 인해 개발자는 복잡한 논리를 다룰 필요가 없습니다. 그러나 다른 브라우저에서 코드를 테스트할 때 어려움이 발생합니다. 브라우저 버그가 다른 방식으로 표시되는 이유는 대부분의 CSS 개발자가 직면한 주요 문제입니다. 디자인이 한 브라우저에서는 멋져 보일 수 있지만 다른 브라우저에서는 레이아웃이 깨져 보일 수 있습니다.

"CSS는 제어하기 어렵다"는 오해는 언어 자체에서 비롯되는 것이 아니라 모든 주요 브라우저에서 사이트가 제대로 작동하도록 하기 위해 필요한 일련의 조치에서 비롯됩니다. 아래에서는 버그가 발생하는 몇 가지 상황에 대해 설명합니다.

1. 버그를 잡는 방법

우리 모두는 브라우저에 버그가 있고 일부 브라우저에는 다른 브라우저보다 버그가 더 많다는 것을 알고 있습니다. CSS 개발자가 자신의 코드에서 문제에 직면하면 일부 사람들은 오류를 브라우저 버그로 비난하고 적절한 조치를 취할 것입니다. 사실, 모두가 버그를 과장하고 있으며, 버그는 사람들이 말하는 것만큼 흔하지 않습니다. 가장 일반적인 CSS 문제는 브라우저 버그가 아니라 CSS 사양에 대한 불완전한 이해로 인해 발생합니다.

많은 개발자가 독학을 통해 효과에 대한 자신만의 정신적 모델을 구축합니다. 무언가가 기대에 미치지 못할 때 그들은 브라우저를 범인으로 지목합니다. 이런 문제를 피하기 위해서는 CSS 버그를 다룰 때 어딘가에 실수가 있었다고 가정하고 의심스러운 부분을 가지고 코드를 확인하면서 자연스럽게 각 코드를 찾아내는 것이 가장 좋습니다. 구문 오류가 계속 개선되고 있습니다. 정말 찾을 수 없다면 브라우저 버그인지 생각해 보세요.

일반적인 CSS 문제

가장 간단한 CSS 문제 중 일부는 코드의 입력 및 구문 오류로 인해 발생합니다. 이 버그를 방지하는 가장 좋은 방법은 CSS 유효성 검사기(ttp://jigsaw.w3.org/css-validator/)를 통해 코드를 실행하는 것입니다. 그러면 모든 구문 오류를 찾아 각 오류에 대한 줄과 간단한 설명이 표시됩니다.

하지만 체커는 자동 검사 도구일 뿐이며 완전히 신뢰할 수는 없다는 점도 기억하세요. 이는 검사기의 버그이기도 한 여러분을 놀라게 할 오류를 보고할 수 있지만, 보고하는 오류가 실제 오류인지 여부를 알 수 있어야 합니다.

1. 특이성 및 분류 순서의 문제

문법 오류 외에도 가장 흔히 발생하는 문제 중 하나는 특이성 및 분류 순서의 설계입니다. 요소에 규칙을 적용했는데 효과가 없는 경우 특정성 문제가 발생하는 경우가 많습니다. 다른 규칙을 적용하면 제대로 작동하지만 일부 규칙은 작동하지 않아 매우 짜증스럽습니다. 예:

다음 코드에서 주황색을 표시하고 싶지만 원래는 투명하게 작성되었으므로 규칙을 사용하세요.

#content p{background-color:transparent;}
.intro{background-color:#feeca9}
로그인 후 복사

브라우저에서 테스트해도 여전히 transparent 로 표시됩니다. 이는 콘텐츠 p를 선택하는 것이 intor의 선택기보다 더 구체적이기 때문입니다. 이 경우 이를 처리하는 가장 좋은 방법은 intor 단락 선택기 시작 부분에 콘텐츠 요소의 ID를 추가하는 것입니다:

#content p{background-color: transparent;}
#content .intro{background-color: #feeca9;}
로그인 후 복사

I 이 글을 먼저 쓰고 있는데, 잠시 밖에 나가고 싶어요.

이전 장에서 "특수성과 분류 순서의 문제"에 대해 이야기를 마쳤습니다. 이제

2. 공백 가장자리가 겹치는 문제

에 대해 이야기해 보겠습니다.

공백 가장자리 오버레이는 오해할 경우 많은 문제를 일으킬 수 있는 또 다른 CSS 특성입니다. 예를 들어 보겠습니다.

<p id="box">
<p>This paragraph has a 20px margin.</p>
</p>
로그인 후 복사

p 상자는 10픽셀 여백을 설정합니다.

#box{margin:10px;background-color:#d5d5d5;}
p{margin:20px;background-color:#6699ff;}
로그인 후 복사

이런 식으로 이상적인 p 여백은 10픽셀이어야 하고 p 태그는 20픽셀을 생성합니다. 실제로 p의 10픽셀 마진만 생성되고 p 태그는 왼쪽과 오른쪽에 20픽셀의 마진만 나타나며 p의 위쪽과 아래쪽에는 마진이 생성되지 않습니다.

이는 두 가지 이유 때문에 발생합니다. 첫째, 단락의 위쪽 및 아래쪽 여백 20픽셀이 p의 10픽셀과 겹쳐서 단일 20픽셀 세로 여백을 형성합니다. 둘째, 이러한 공백 가장자리는 p로 둘러싸여 있지 않지만 p의 위쪽 및 아래쪽 가장자리를 넘어 돌출됩니다. 이는 하위 요소의 높이가 요소에 의해 계산되기 때문에 발생합니다. 요소에 세로 테두리나 패딩이 없는 경우 해당 요소의 높이는 포함된 하위 요소의 위쪽 및 아래쪽 테두리 가장자리 사이의 거리입니다. 따라서 포함하는 하위 요소의 위쪽 및 아래쪽 여백이 컨테이너 요소 외부로 돌출됩니다. 그러나 간단한 해결책이 있습니다. 수직 테두리 또는 패딩을 추가하면 공백이 더 이상 겹치지 않으며 요소의 높이는 포함된 하위 요소의 위쪽 및 아래쪽 공백 가장자리 사이의 거리입니다. 코드는 다음과 같습니다.

#box{margin:10px;padding:1px;background-color:#d5d5d5;}
p{margin:20px;background-color:#6699ff;}
로그인 후 복사

ok 문제가 해결되었습니다. 다음 장에서는 버그 캡처에 대한 기본 지식에 대해 이야기하겠습니다.

2. 버그 격리 문제

接下来需要尝试隔离问题。通过隔离问题和识别症状,有可能查明是什么导致了这个问题并修复它。隔离问题的一种方法是在相关的元素上应用边框或轮廓,看看它们的反应:

1 #promo1
 2 {
 3 float:left;
 4 margin-right:5px;
 5 border:1px solid red;
 6 }
 7 #promo2
 8 {
 9 float:left;
10 border:1px solid green;
11 }
로그인 후 복사

(我一般喜欢把边框直接在也页面添中加,这样善后处理的话就比较好处理)可以使用firefox开发人员工具条插件中的轮廓选项,或者使用用来给不同元素加轮廓的bookmarklet之一。有时候,仅仅添加边框就会修复问题,这往往就说明这个就是空白边叠加的问题。

尝试修改几个属性后,看看它们是否影响bug,如果有影响,那么是哪一个元素,那一个样式产生的影响找到这个元素,就ok了。例如,如果在两个框架之间的间隙在IE中比你想想的大,那么加大空白边,来测试,看一下会有什么变化。如果边框之间的间隙加倍了,那么可能是遇到了IE的双空白边浮动bug。

 1  #promo1
 2   {
 3  float:left;
 4  margin-right:40px;
 5  border:1px solid red;
 6  }
 7  #promo2
 8  {
 9  float:left;
10  border:1px solid green;
11  }
로그인 후 복사

       尝试一些常见的解决方案。例如,将position属性设置为relatively、将display属性设置为inline(在浮动元素上)或者设置宽度或者高度的属性,让它增高或者缩短,都可以修复许多IE bug。这样的话你就可以找到很多css问题,从而达到对其了解和修复它们!

위 내용은 꼭 알아야 할 CSS 버그와 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Vue에서 부트 스트랩을 사용하는 방법 Vue에서 부트 스트랩을 사용하는 방법 Apr 07, 2025 pm 11:33 PM

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

HTML, CSS 및 JavaScript의 역할 : 핵심 책임 HTML, CSS 및 JavaScript의 역할 : 핵심 책임 Apr 08, 2025 pm 07:05 PM

HTML은 웹 구조를 정의하고 CSS는 스타일과 레이아웃을 담당하며 JavaScript는 동적 상호 작용을 제공합니다. 세 사람은 웹 개발에서 의무를 수행하고 화려한 웹 사이트를 공동으로 구축합니다.

부트 스트랩에 분할 라인을 작성하는 방법 부트 스트랩에 분할 라인을 작성하는 방법 Apr 07, 2025 pm 03:12 PM

부트 스트랩 분할 라인을 만드는 두 가지 방법이 있습니다 : 태그를 사용하여 수평 분할 라인이 생성됩니다. CSS 테두리 속성을 사용하여 사용자 정의 스타일 분할 라인을 만듭니다.

HTML, CSS 및 JavaScript 이해 : 초보자 안내서 HTML, CSS 및 JavaScript 이해 : 초보자 안내서 Apr 12, 2025 am 12:02 AM

WebDevelopmentReliesonHtml, CSS 및 JavaScript : 1) HtmlStructuresContent, 2) CSSSTYLESIT, 및 3) JAVASCRIPTADDSINGINTERACTIVITY, BASISOFMODERNWEBEXPERIENCES를 형성합니다.

부트 스트랩에 사진을 삽입하는 방법 부트 스트랩에 사진을 삽입하는 방법 Apr 07, 2025 pm 03:30 PM

Bootstrap에 이미지를 삽입하는 방법에는 여러 가지가 있습니다. HTML IMG 태그를 사용하여 이미지를 직접 삽입하십시오. 부트 스트랩 이미지 구성 요소를 사용하면 반응 형 이미지와 더 많은 스타일을 제공 할 수 있습니다. 이미지 크기를 설정하고 IMG-Fluid 클래스를 사용하여 이미지를 적응할 수 있도록하십시오. IMG 통과 클래스를 사용하여 테두리를 설정하십시오. 둥근 모서리를 설정하고 IMG 라운드 클래스를 사용하십시오. 그림자를 설정하고 그림자 클래스를 사용하십시오. CSS 스타일을 사용하여 이미지를 조정하고 배치하십시오. 배경 이미지를 사용하여 배경 이미지 CSS 속성을 사용하십시오.

부트 스트랩 버튼을 사용하는 방법 부트 스트랩 버튼을 사용하는 방법 Apr 07, 2025 pm 03:09 PM

부트 스트랩 버튼을 사용하는 방법? 부트 스트랩 CSS를 소개하여 버튼 요소를 만들고 부트 스트랩 버튼 클래스를 추가하여 버튼 텍스트를 추가하십시오.

부트 스트랩을위한 프레임 워크를 설정하는 방법 부트 스트랩을위한 프레임 워크를 설정하는 방법 Apr 07, 2025 pm 03:27 PM

부트 스트랩 프레임 워크를 설정하려면 다음 단계를 따라야합니다. 1. CDN을 통해 부트 스트랩 파일 참조; 2. 자신의 서버에서 파일을 다운로드하여 호스팅하십시오. 3. HTML에 부트 스트랩 파일을 포함; 4. 필요에 따라 Sass/Less를 컴파일하십시오. 5. 사용자 정의 파일을 가져옵니다 (선택 사항). 설정이 완료되면 Bootstrap의 그리드 시스템, 구성 요소 및 스타일을 사용하여 반응 형 웹 사이트 및 응용 프로그램을 만들 수 있습니다.

부트 스트랩 크기를 조정하는 방법 부트 스트랩 크기를 조정하는 방법 Apr 07, 2025 pm 03:18 PM

부트 스트랩에서 요소의 크기를 조정하려면 다음을 포함하여 차원 클래스를 사용할 수 있습니다.

See all articles