나는 당신의 주장을 하나씩 차례로 살펴보고 그 안에 오류를 보여 주려고 노력할 것입니다.
컨텐츠를 레이아웃과 분리하는 것이 좋습니다. 그러나 이것은 잘못된 주장입니다. 진부한 생각.
HTML은 의도적으로 설계 되었기 때문에 전혀 실수가 아닙니다. 요소의 오용은 완전히 의문의 여지가 없지만 (이후 다른 언어로도 새로운 관용구가 개발 되었음) 가능한 부정적인 영향이 균형을 이루어야합니다. 또한 <table>
오늘날 요소 를 잘못 사용하는 것에 대한 논쟁이 없었더라도 브라우저 공급 업체가 요소에 특별한 대우를 적용하는 방식으로 인해 내일이있을 수 있습니다. 결국, 그들은“ <table>
요소는 테이블 형식의 데이터만을위한 것”이라는 것을 알고 있으며, 이 사실을 사용하여 렌더링 엔진을 개선하고 프로세스에서 <table>
동작 방식을 미묘하게 변경 하여 이전에 잘못 사용 된 사례를 깨뜨릴 수 있습니다.
그래서 무엇? 상사가 신경 쓰나요? 내 사용자는 신경 쓰나요?
다릅니다. 당신의 상사가 뾰족한 머리입니까? 그러면 그는 신경 쓰지 않을 것입니다. 그녀가 유능하다면, 그녀는 걱정할 것입니다. 가질 것 입니다.
아마도 웹 페이지 관리를 유지해야하는 나와 저의 동료 개발자는 ... 테이블을 유지 관리하기가 쉽지 않습니까? 테이블을 사용하는 것이 div와 CSS를 사용하는 것보다 쉽다고 생각합니다.
전문 웹 개발자의 대다수는 당신을 반대하는 것 같습니다[ 인용 필요 ] . 그 테이블 은 실제로 유지 보수가 덜 용이하다는 것이 분명해야합니다. 레이아웃에 테이블을 사용한다는 것은 회사 레이아웃을 변경하면 실제로는 모든 단일 페이지를 변경한다는 의미입니다. 이것은 매우 비쌀 수 있습니다 . 반면에 CSS와 결합 된 의미 적으로 의미있는 HTML을 신중하게 사용하면 이러한 변경 사항이 CSS와 사용 된 그림에 제한 될 수 있습니다 .
그건 그렇고 ... 왜 div 또는 span을 사용하여 레이아웃과 테이블에서 내용을 잘 분리하고 있습니까? div만으로 좋은 레이아웃을 얻으려면 종종 중첩 된 div가 많이 필요합니다.
깊게 중첩 된 <div>
테이블 레이아웃과 마찬가지로 안티 패턴입니다. 훌륭한 웹 디자이너는 많은 것을 필요로하지 않습니다. 다른 한편으로, 깊게 중첩 된 div조차도 테이블 레이아웃의 많은 문제가 없습니다. 실제로, 그들은 논리적으로 내용을 부분적으로 나눔으로써 의미 론적 구조에 기여할 수 있습니다.
코드의 가독성 나는 다른 방법이라고 생각합니다. 대부분의 사람들은 HTML을 이해하고 CSS는 거의 이해하지 못합니다. 더 간단합니다.
“대부분의 사람들”은 중요하지 않습니다. 전문가가 중요합니다. 전문가에게는 테이블 레이아웃이 HTML + CSS보다 더 많은 문제를 만듭니다. 메모장은 대부분의 사람들에게 더 간단하기 때문에 GVim 또는 Emacs를 사용해서는 안된다는 것과 같습니다. 또는 MS Word가 대부분의 사람들에게 더 단순하기 때문에 LaTeX를 사용해서는 안됩니다.
SEO가 테이블을 사용하지 않는 것이 좋습니다.
이것이 사실인지 모르겠으며 이것을 인수로 사용하지 않을 것이지만 논리적입니다. 검색 엔진은 관련 데이터를 검색 합니다. 테이블 형식 데이터는 물론 관련성이 있지만 사용자가 검색하는 것은 거의 없습니다. 사용자는 페이지 제목 또는 유사하게 눈에 띄는 위치에 사용 된 용어를 검색합니다. 따라서 테이블 형식 컨텐츠를 필터링에서 제외하여 처리 시간 (및 비용)을 크게 줄이는 것이 논리적입니다.
테이블이 느립니다. 여분의 tbody 요소를 삽입해야합니다. 이것은 현대 웹 브라우저를위한 땅콩입니다.
추가 요소는 테이블이 느려지는 것과 관련이 없습니다. 반면에 테이블의 레이아웃 알고리즘은 훨씬 어렵습니다. 브라우저는 종종 컨텐트 레이아웃을 시작하기 전에 전체 테이블이로드 될 때까지 기다려야합니다. 또한 레이아웃 캐싱이 작동하지 않습니다 (CSS를 쉽게 캐시 할 수 있음). 이 모든 것은 이전에 언급되었습니다.
표를 사용하면 페이지 속도가 크게 저하되는 벤치 마크를 보여주세요.
불행히도 벤치 마크 데이터가 없습니다. 이 논증에 과학적 근거가 부족하다는 것이 옳기 때문에 나는 그것에 관심을 가질 것이다.
업그레이드가 필요한 대부분의 웹 사이트에는 새로운 콘텐츠 (html)도 필요합니다. 새 버전의 웹 사이트에 새 CSS 파일 만 필요한 시나리오는 거의 없습니다.
전혀. 콘텐츠와 디자인을 분리하여 디자인 변경을 단순화 한 몇 가지 사례를 연구했습니다. 여전히 일부 HTML 코드를 변경해야하는 경우가 종종 있지만 변경 사항은 항상 훨씬 더 제한적입니다. 또한 때때로 설계 변경이 동적으로 이루어져야합니다. WordPress 블로그 시스템에서 사용하는 것과 같은 템플릿 엔진을 고려하십시오. 테이블 레이아웃은 문자 그대로이 시스템을 죽입니다. 상용 소프트웨어와 비슷한 경우를 연구했습니다. HTML 코드를 변경하지 않고 디자인을 변경할 수 있다는 것은 비즈니스 요구 사항 중 하나였습니다.
또 다른 한가지. 테이블 레이아웃은 웹 사이트의 자동 구문 분석 (화면 스크래핑)을 훨씬 어렵게 만듭니다. 결국 누가 그것을하기 때문에 사소한 것처럼 들릴 수 있습니다. 나는 놀랐다. 문제의 서비스가 데이터에 액세스 할 수있는 WebService 대안을 제공하지 않으면 화면 스크래핑이 많은 도움이 될 수 있습니다. 나는 이것이 슬픈 현실 인 생물 정보학에서 일하고 있습니다. 최신 웹 기술과 웹 서비스는 대부분의 개발자에게 도달하지 않았으며 종종 화면 스크래핑이 데이터 가져 오기 프로세스를 자동화하는 유일한 방법입니다. 많은 생물 학자들이 여전히 그러한 작업을 수동으로 수행한다는 것은 놀라운 일이 아닙니다. 수천 개의 데이터 세트