브라우저가 CSS 속성에 대한 공급 업체 접두사를 만드는 이유는 무엇입니까?
분명한 대답 일 수도 있지만
왜 지구에 브라우저에 대한 자신의 공급 업체 접두사를 만들하기로 결정 것 border-radius
등?
내 말은 : 왜 다음을 입력해야합니까?
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
각 플랫폼이 "우리는 멋지다. 둥근 모서리를 만드는 더 좋은 방법을 생각 해낼 것"이라고 생각했기 때문 입니까? 한 줄에 세 줄을 입력하는 것은 완전히 그리고 설명 할 수 없을 정도로 중복 된 것 같습니다.
사양이 최종 출시 단계에 도달하기 전에 공급 업체에서 기능을 구현했기 때문입니다.
공급 업체 접두사는 기능 변경 등과의 충돌이 없는지 확인합니다.
원래 벤더 접두사의 요점은 브라우저 제작자가 실험적인 CSS 선언 지원을 시작할 수 있도록하는 것이 었습니다.
W3C 워킹 그룹이 그리드 선언에 대해 논의하고 있다고 가정 해 보겠습니다 (부수적으로 그렇게 나쁜 생각은 아닙니다). 더 나아가 어떤 사람들은 초안 사양을 작성하지만 다른 사람들은 일부 세부 사항에 동의하지 않는다고 가정 해 봅시다. 아시다시피이 과정은 오래 걸릴 수 있습니다.
또한 Microsoft는 실험으로 제안 된 그리드를 구현하기로 결정했다고 가정 해 보겠습니다. 이 시점에서 Microsoft는 사양이 변경되지 않을 것이라고 확신 할 수 없습니다. 따라서 CSS에 그리드를 추가하는 대신 -ms-grid를 추가합니다.
공급 업체 접두사는 "이것은 진행중인 제안에 대한 Microsoft의 해석입니다."라고 말합니다. 따라서 그리드의 최종 정의가 다른 경우 Microsoft는 -ms-grid에 의존하는 페이지를 분할하지 않고 새 CSS 속성 그리드를 추가 할 수 있습니다.
소스 .
2016 년 기준 업데이트
이 게시물이 오래 되었으므로 이제 대부분의 공급 업체는 이러한 접두사가 불필요한 중복 코드를 만들고 있으며 모든 브라우저에서 하나의 효과를 얻기 위해 3 가지 다른 CSS 규칙을 지정해야하는 상황이 원치 않는 상황이라는 것을 이해하고 있음을 언급하는 것이 중요합니다. .
에서 언급 한 바와 같이 이 용어집 에 모질라의 견해에 대해 Vendor Prefix
에 May 3, 2016
,
브라우저 공급 업체는 이제 실험적 기능에 대한 공급 업체 접두사를 제거하려고합니다. 그들은 웹 개발자가 프로덕션 웹 사이트에서이를 사용하여 글로벌 공간을 오염시키고 약자들이 잘 수행하는 것을 더 어렵게 만들고 있음을 알았습니다.
예를 들어, 불과 몇 년 전에 상자에 둥근 모서리를 설정하려면 다음과 같이 작성해야합니다.
-moz-border-radius: 10px 5px;
-webkit-border-top-left-radius: 10px;
-webkit-border-top-right-radius: 5px;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-bottom-left-radius: 5px;
border-radius: 10px 5px;
그러나 이제 브라우저가이 기능을 완벽하게 지원하게되었으므로 표준화 된 버전 만 있으면됩니다.
border-radius: 10px 5px;
'developer tip' 카테고리의 다른 글
글로벌 노드 모듈이 올바르게 설치되지 않습니다. (0) | 2020.11.26 |
---|---|
Perl에서 파일의 마지막 수정 시간은 어떻게 얻습니까? (0) | 2020.11.26 |
jQuery로 CSS 클래스 속성 변경 (0) | 2020.11.25 |
React에 자식 컴포넌트를 동적으로 추가 (0) | 2020.11.25 |
Java 생성자를 동기화 할 수없는 이유는 무엇입니까? (0) | 2020.11.25 |