2012-12-28 6 views
-2

저는 CSS 초보자입니다. 난 그냥 다음 코드를 사용하여 기본 HTML 페이지를 그릴 :이 CSS 코드를 최적화하는 방법은 무엇입니까?

여기
<html> 
    <head> 
    <title>Hey</title> 
    <link href="style.css" rel="stylesheet" type="text/css"> 
    </head> 
    <body> 
    <header class="top-menu"></header> 
    <div class="container"> 
     <div class="left-side"></div> 
     <div class="main-content"></div> 
    </div> 
    <div class="foot"></div> 
    </body> 
</html> 

있는 style.css되어 목적은 CSS를 몇 가지 문제 같은를 crap.even 보이는 straightforward.But됩니다

.top-menu{ 
    position: fixed; 
    top: 0; 
    left: 70px; 
    right: 70px; 
    height: 50px; 
    background-color: #000000; 
} 
.container{ 
    margin: 70px 70px 20px 70px; 
    display: inline-block; 
    width: 91%; 
} 

.left-side { 
    width: 30ex; 
    min-height: 30ex; 
    float: left; 
    background-color: blue; 
} 
.main-content { 
    width: 80ex; 
    float: right; 
    background-color: red; 
    min-height: 100ex; 
} 
.foot { 
    background-color: green; 
    height: 5ex; 
    width: 91%; 
    margin-left: 10ex; 
} 

가 물어보고 싶은 일부 질문 :

1. 컨테이너의 왼쪽과 오른쪽 여백은 70px이며 최상위 메뉴와 동일하지만 크롬 페이지 뷰에서 왜 정렬되지 않습니까?

2. '컨테이너'너비를 100 %로 설정하면 가로 스크롤 막대가 나타납니다 (발 부분과 동일)?

3. 컨테이너의 디스플레이를 '인라인 블록'으로 설정하지 않은 경우 발 부분이 공중에 날아간 이유는 무엇입니까? (심지어 내가 '블록'으로 설정)

4. 나에게 더 나은 CSS 스타일 코드를 줄 수 있습니까?

답변

0

CSS3와 최신 HTML 표준을 사용하고 있지만 많은 브라우저 공급 업체가 <header> 태그를 채택하지 않은 것으로 알고 있습니다. 나는 그것을 사용하는 것을 떠돌아 다닐 것이다. IE9는 IE를 채택한 첫 번째 IE이며 여전히 IE6/7에 많은 사용자가 있습니다.

<header> 아웃 타고 정상 <div class="header">...</div>로 교체 한 후 CSS .header { }를 사용하여 참조합니다.

# 2로 대답하려면 width: 100%;을 말한 다음 왼쪽/오른쪽 여백을 추가하고 가로 스크롤 막대를 기대하지 마십시오. 원칙적으로 컨테이너는 100 %를 넘을 것입니다.

컨테이너 div에 display: inline-block;을 추가하는 이유가 확실하지 않습니다. 인라인 요소에만이 선언 (예 : 텍스트 요소)이 있어야합니다. 왜 그렇게 특별한 이유가 있습니까?

또한 처음으로 html 템플릿을 만들고 테스트 할 때 div에 콘텐츠를 추가하고 단순히 비워 두지 말아야합니다. min-height: ...을 추가하는 것은 어리석은 시스템이 아닙니다. 나는 항상 가짜 텍스트를 추가한다 - "여보세요". 충분하다.

마지막으로, 적절한 HTML Doctype을 추가하십시오. 아마 당신은 질문 부분에 대한 그것을 다듬어하지만이 xhtml 또는 html입니까? 이것은 <header>의 사용과 더 관련이 있습니다. 모든 doctype이 <header을 지원하는 것은 아닙니다.

+0

감사합니다. 나는 모든 요소들로부터 모든 최소 높이를 타고 있습니다. 컨테이너의 상태를 표시해야하는 이유는 디스플레이 속성을 사용하면 발 부분이 컨테이너 부분과 겹칠 것입니다. 어떤 아이디어? – LeoShi

+3

많은 사람들이 IE6/7을 더 이상 사용하지 않습니다. 0.3 & IE6 및 1.2 % IE7. 대부분의 IE 사용자는 IE8을 사용하지만 OP는 항상 ie9.js와 같은 것을 사용하여 HTML5 요소와의 호환성을 강제합니다. – Kyle

+0

IE6를 0.3 % 이상 사용하지 않아서 고맙습니다. 나는 html5의 채택에 시간이 걸린다는 생각을 단순히 암시하고 있었고,이 전환기에는 예상대로 작동하지 않을 특정 HTML 태그' '을주의해야합니다. – ProfileTwist

0

2. 컨테이너의 너비를 100 %로 설정하면 가로 스크롤 막대가 나타납니다 (발 부분과 동일)?

너비가 100 % 이상인 여백이 있기 때문에.

+0

고마워. 컨테이너 부분을 최상위 메뉴 부분에 정렬하려면 폭을 매직 번호로 설정해야합니까? – LeoShi

+0

아니요 항상 백분율을 사용할 수 있지만 여백/경계선은 항상 요소의 전체 너비에 추가됩니다. 모든 것을 98 % 내로 설정하십시오. – ATOzTOA

0

이미 말한 것과는 별도로 크롬 인스펙터를 사용하여 문제를 해결하려 했습니까? 페이지에서 마우스를 가리킨 다음 마우스 오른쪽 버튼을 클릭하고 Inspect Element을 선택하십시오. 거기에서 몇 가지 CSS 속성을 활성화/비활성화하고 무엇이 잘못되었는지 찾을 수 있습니다. firefox의 경우 해당 파일은 http://getfirebug.com/

입니다. 레이아웃 문제는 다음과 같습니다. 시작했을 때 이것이 우리 모두에게 큰 고통이었습니다.귀하의 요점은 실제로 CSS를 배우지 않는 경우, 당신이 원한다면 한 번에 모든 시간에, 내 조언은 다음과 같습니다 : 그리드와 CSS 프레임 워크를 사용하십시오.

CSS 프레임 워크는 일반적으로 "그리드"라고하는 깔끔한 기능을 가지고 있습니다. 그것은 당신이 5 분 안에 당신과 같은 레이아웃을 설정할 수 있으며,이 div가이 브라우저에서 어떻게 떠 다니는 지 걱정하지 않아도됩니다.

플러스 : 사용하려는 웹 사이트에 따라 다르지만 일반적으로 그리드를 사용할 때 섹시한 마술에 의한 일은 덜 아마추어처럼 보일 것입니다. (디자이너 배경을 알고 있다면 아마도 이것을 이미 알고있을 것입니다)

간단한 프레임 워크를 시작하십시오. 누구나 좋아하는 것이 있지만 시작하려면 BluePrint을 권해드립니다. 여기에 작은 데모가 있습니다 grid system super powers;)

+0

고마워. 나는 트위터 부트 스트랩과 다른 gird 시스템을 사용하는 법을 안다. 하지만 난 지금 진짜 CSS를 배우고 싶다. – LeoShi

관련 문제