'CSS 해킹'의 정의는 무엇입니까?
라는 용어를 오해하는 것 같습니다
많은 분들이 알고 있듯이 Sitepoint는 최근에 제가 한 대규모 CSS 설문 조사 결과를 발표했습니다. 설문 조사가 요청한 질문 중 하나는 다음과 같습니다.
다음 중 다음 중 어떤 Microsoft 브라우저가 CSS 해킹을 작성하거나 포함합니까?
결과를 처음 연구했을 때, 나는이 질문의 결과에서 이상한 점을 놓친 것 같았다. 다행히도 Microsoft의 최신 브라우저에서 일하는 엔지니어 인 David Storey가이를 지적했습니다. 이 질문에 대답 한 1,418 명 중 결과는 다음과 같습니다.
ie9 - 62%-
ie10 - 61%
ie11 - 57%
가장자리 - 45%
- ie8 - 35% ie7 - 9%
- ie6 - 3% ie5.5 - 1%
개발자의 60% 이상이 IE9 및 IE10에 대한 CSS 해킹을 작성한다고 주장하는 것은 충분히 나쁘지 만 Edge는 45%입니까? Edge 용 해킹이 게시되었지만 아직 Browserhacks 웹 사이트에 있지 않으므로 많은 사람들이 해당 브라우저에 해킹을 사용하지 않을 것 같습니다. 그러나 더 중요한 질문은 다음과 같습니다. 개발자가 해킹을 요구하는 CSS를 렌더링하는 데 어떤 문제가 발생 하는가?
처음에는 많은 참가자들이 사용자 에이전트 스니핑을 통해 브라우저 감지와 해킹을 혼란스럽게 할 것이라고 생각했습니다. 그러나 그조차도 왜 그 숫자가 가장자리가 그렇게 높은지 설명하지 않을 것입니다.
그런 다음 나는 그들이 질문을 완전히 오해해야한다는 것을 깨달았습니다. 그들은‘브라우저 X의 CSS 해킹 쓰기’는‘지원 브라우저 X’와 동일하다고 생각합니다. 다른 논리적 설명은 실제로 없습니다. 특히 해킹이 필요하지 않은 다른 브라우저의 높은 비율을 고려할 때.
위의 예제에서 CSS (종종 "Star-Html Hack"이라고도 함)는
이하의 Internet Explorer 버전 만 목표로합니다. IE6을 지원하는 대부분의 개발자는 IE6 이전에 아무것도 신경 쓰지 않으므로 일반적으로 IE6 전용 해킹으로 작동합니다.
.
"핵"인 부분은 별표와 "html"이 뒤 따릅니다. 이것은 범용 선택기와 요소 유형 선택기의 조합입니다. 어느 시점에서 누군가 다른 선택기 앞에 다른 선택기가 다른 브라우저에는 영향을 미치지 않으면 서 특정 버전의 IE에서만 작동한다는 것을 발견했습니다. 이는 위 코드 예제에 정의 된 .sidebar 요소의 왼쪽 마진이 IE6 또는 이전에만 적용됨을 의미합니다. 이 경우 CSS는 실제로 유효하므로 오류 나 경고를받지 못할 것입니다 (나중에 자세한 내용).
다음은 BrowserHacks 웹 사이트에서 가져온 또 다른 예입니다. 이번에는 IE11을 대상으로합니다.
는 확인하지 않았습니다.
이 경우 : -ms-fullscreen은 "알 수없는 공급 업체 확장 의사 클래스"로 간주되기 때문에 경고합니다. 이런 종류의 CSS를 경고 대신 오류로 보는 것이 더 편안하다고 느끼면 유효성 검사기 입력 영역 아래의 "더 많은 옵션"섹션을 사용하여 유효성 검사기 설정을 조정할 수 있습니다.
.
이 경우 유효성 검사기에서 어떤 설정을 선택하든 오류 메시지가 표시되며 스타일 시트는 유효성 검사를 전달하지 않습니다.
CSS Hacks가 유효하지 않은 CSS? 입니다
.
위의 CSS는 IE8 이하를 목표로합니다. "해킹"은 백 슬래시와 9 개 (9)의 조합입니다. 9 부분이 라인을 유효하지 않은 CSS를 만들기 때문에 대부분의 브라우저는 전체 라인을 무시합니다. 그러나 어떤 이유로 든 Internet Explorer 버전 8 이하는 여전히 유효한 것으로 간주되며 여백 설정을 적용합니다.
중요한 키워드가 추가 된 CSS 라인은 완전히 다른 문제입니다. 이것은 유효한 CSS이며 특정 브라우저를 타겟팅하는 데 사용되지 않습니다. 이것은 해킹이 아니지만 나쁜 CSS로 볼 수 있습니다.
공급 업체 접두사는 특정 브라우저를 대상으로하지만 이는 우리가 관습 적으로 해킹이라고하는 것이 아닙니다. 대부분의 경우 공급 업체 접두사를 사용하는 경우 유효한 표준 코드도 제공합니다. 그것은 해킹이 아닙니다. 즉, 브라우저를 타겟팅하기 위해 공급 업체 별 코드를 작성하는 경우가 있으므로 해킹 자격이 있습니다. _ :-ms-fullscreen을 사용하는 위의 코드가 예입니다. 또 다른 좋은 예는 하드웨어 가속을 트리거하는 것입니다
WebKit 브라우저에서. 그러나 벤더 접두사는 대부분 별도의 주제입니다. 실제로 W3C는 공급 업체 별 코드에 대한 문서를 가지고 있으며, 이는 그 자체로 해킹으로 여겨지지 않아야한다는 개념을 뒷받침합니다.
공급 업체 접두사가 반드시 해킹은 아닙니다
스타일 시트의 다른 부분 (예 : Body .Content #SideBar P)에서 무언가를 무시하려는 선택자와의 특정한 것은 CSS 해킹이 아닙니다. CSS는 나쁜 일이지만 해킹은 아닙니다.
위 내용은 'CSS 해킹'의 정의는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

Google Fonts가 새로운 디자인 (트윗)을 출시 한 것을 볼 수 있습니다. 마지막 큰 재 설계와 비교할 때 이것은 훨씬 더 반복적 인 느낌이 듭니다. 차이를 간신히 말할 수 있습니다

프로젝트에 카운트 다운 타이머가 필요한 적이 있습니까? 그런 것은 플러그인에 도달하는 것이 당연하지만 실제로는 훨씬 더 많습니다.

요소 수가 고정되지 않은 경우 CSS를 통해 지정된 클래스 이름의 첫 번째 자식 요소를 선택하는 방법. HTML 구조를 처리 할 때 종종 다른 요소를 만듭니다 ...

플렉스 레이아웃의 보라색 슬래시 영역에 대한 질문 플렉스 레이아웃을 사용할 때 개발자 도구 (d ...)와 같은 혼란스러운 현상이 발생할 수 있습니다.

타탄은 일반적으로 스코틀랜드, 특히 세련된 킬트와 관련된 패턴의 천입니다. tartanify.com에서 우리는 5,000 개가 넘는 타탄을 모았습니다

새로운 프로젝트가 시작될 때, Sass 컴파일은 눈을 깜박이게합니다. 특히 BrowserSync와 짝을 이루는 경우 기분이 좋습니다.

Safari에서 사용자 정의 스타일 시트 사용에 대한 토론 오늘 우리는 Safari 브라우저에 대한 사용자 정의 스타일 시트 적용에 대한 질문에 대해 논의 할 것입니다. 프론트 엔드 초보자 ...
