2014-11-03 3 views
4

creating custom HTML elements (이름에 대시가 포함되어있는 한) HTML5 specs이 있고 웹 구성 요소가 여기 남아있는 기능인 것처럼 보인다고해서 사용자 정의 HTML 요소를 만드는 것이 왜 낯설지는지 알고 싶습니다. 에?맞춤 HTML 태그를 사용하지 않는 이유는 무엇입니까?

웹 구성 요소를 사용할지 여부는 아직 결정되지 않았습니다. 아직 움직이는 대상이며 Polymer와 같은 멋진 폴리필을 사용하더라도 제작 준비가 아직 완료되지 않았을 수 있습니다. JS API를 부착하지 않고 사용자 정의 HTML 태그를 만들고 스타일을 지정하는 방법에 대해 묻습니다.

+0

는 http://stackoverflow.com/questions/18177472/is-it-bad-practice-to-use에 동일 할 수있다 -custom-elements-in-html5 –

+0

@ obiNullPoiиteяkenobi 거짓말은 아닙니다. 여기에서 합법적이고 유효한 HTML5 맞춤 요소 (사양에 정의 된 용도)에 대한 질문입니다. 다른 질문과 대답은이 문제를 다루지 않습니다. – Adi

+0

그냥 설탕을 넣어 : 사용자 정의 태그를 사용하는 이유는 무엇입니까? – rafaelcastrocouto

답변

2

짧은 대답 : 나는 그들을 피할 어떤 강력한 이유도 듣지 못했습니다.

  • 오래된 IE에서 작동하지 않습니다 (단지 document.createElement("my-tag");가 해결됩니다) :

    그러나, 여기에 내가 만든 들었어요 몇 가지 반복 인수입니다.
  • 전역 네임 스페이스 충돌 (클래스 이름 및 일반적으로 사용자 지정 요소에 동일하게 적용됨).
  • CSS 선택기 성능 (doh, 이건 마지막으로 걱정해야 할 부분입니다).
  • 기능 분리, 의미 및 표현. 이것은 실제로 IMHO가 그것에 대한 타당한 근거를 가지고 있다는 유일한 의견입니다. 시맨틱 HTML (검색 엔진과 그 모든 것)을 사용하는 것이 더 낫지 만, 그렇지 않은 경우 div을 사용하면 사용자 정의 태그를 사용할 수없는 이유가 없습니다.
+1

커스텀 태그를 사용하지 않아도 실제로 기능과 프리젠 테이션을 효과적으로 분리 할 수 ​​있습니까? 별도로 표현과 기능을 정의하는 클래스를 가진 div 대신에, 이미 그 기능을 전달하고 단지 프리젠 테이션 클래스를 추가하거나 그 반대로 요소 이름을 사용하게 될 것입니다. –

+0

다릅니다. 프로젝트가 커짐에 따라 스타일이 DOM 구조와 관련이없는 경우 변경 사항을 포함하는 것이 더 쉽습니다. 두 가지 종류의 모달 대화 상자를 기술적으로 모두 '모달 대화 상자'로 사용할 수 있지만 다른 컨텍스트에서 사용하면 다른 대화 상자에 영향을주는 스타일을 변경하지 않아도됩니다. 그래서 나는 개인적으로 DOM 구조에 최대한 의존하는 스타일을 피하기 위해 스타일을 사용하는 클래스를 사용하고 싶습니다. 나는 http://cssguidelin.es/을 읽기를 강력히 권유한다. 이것에 관해 많은 좋은 점들이있다. – quinnirill

+0

링크를 제공해 주셔서 감사합니다!엘리먼트의 표현이나 기능을 결정하는 주된 방법으로 DOM 구조를 사용하는 것을지지하지는 않지만, 코드 가독성과 사용의 편의성을 위해 부모 클래스를 자식 레이아웃 플로우에 연결하는 특정 방법을 믿습니다. 사건에 달렸어. –

1

사용자 정의 태그에 대한 인수 중 하나는 화면 판독기와의 묵시적인 비 호환성입니다. 이 문제는 WAI-ARIA attributes으로 해결할 수 있습니다.

디스플레이 속성이없는 사용자 정의 요소가 표 셀 안에 삽입 된 경우 테이블 레이아웃을 중단시키는 issue in IE11이 있습니다. Check the plunker code. 따라서과 같이 예를 들어, 명시 적으로 모든 새로운 요소를 선언하기 위해 가장 안전 :

new-element { 
    display: block; 
} 
관련 문제