2012-05-24 4 views
2

일련의 레이블/드롭 다운 목록을 스타일링하는 방법은 무엇입니까? 각 드롭 다운 목록에는 레이블 바로 위에 레이블이 있습니다.레이블의 행 스타일 지정 및 CSS로 목록 드롭 다운

현재 나는 그들이 모두 한 행에 줄을, 내 HTML을 기본적으로

<label for="select1">Label1</label> 
<select id="select1">...<select> 

<label for="select2">Label2</label> 
<select id="select1">...<select> 

<label for="select3">Label3</label> 
<select id="select3">...<select> 

에 있습니다. 나는이 스타일

label { 
display:block; 
} 

내가 그들 모두 더 나은 단어의 부족, 하나 개의 컬럼에 줄 지어 취득을 적용합니다.

그럼 어떻게 레이블을 만들거나 일련의 목록을 드롭 다운 할 수 있습니까?하지만 각 드롭 다운 목록의 레이블이 바로 위를 차지하도록하려면 어떻게해야합니까? 물론 테이블은 없습니다.

감사합니다.

답변

2

업데이트 : 정제 크로스 브라우저 디스플레이

없음 당신이 사용하는, 가고있는 것을 최종 목표는,하지만 난 제대로 해석하면, 뭔가 같은 this updated fiddle가 보여 무슨 생각을 확신한다 (필요)와 함께 작동하도록 명시 적 width 설정 :

CSS

label, select { 
    display: inline-block; 
    width: 100px; 
} 

label { 
    position: relative; 
    top: -1.2em; 
    left: 5px; 
} 

select { 
    margin: 1.5em 0 0 -100px; 
} 

여러 행에 대한 업데이트

고정 폭의 래퍼 요소를 설정하여 행을 줄 바꿈하십시오 (like this fiddle).

0

이 페이지의 맨 위에있는 메뉴 (질문, 태그, 사용자 ...)를 확인하십시오. 순서없는 목록과 함께 표시됩니다.

<div class="nav mainnavs"> 
    <ul> 
     <li class="youarehere"><a id="nav-questions" href="/questions">Questions</a></li> 
     <li><a id="nav-tags" href="/tags">Tags</a></li> 
     <li><a id="nav-users" href="/users">Users</a></li> 
     <li><a id="nav-badges" href="/badges">Badges</a></li> 
     <li><a id="nav-unanswered" href="/unanswered">Unanswered</a></li> 
    </ul> 
</div> 

각 라벨/드롭 다운 쌍을 목록 항목에 붙일 수 있습니다.

<li> 
    <label for="select1">Label1</label> 
    <br /> 
    <select id="select1">...<select> 
</li> 
+0

왜 이것이 downvoted인지 확실하지 않습니다.리스트는'label'과'select'를 그룹화하는 유효한 방법입니다 (그러나'br'을 사용하지는 않겠지 만). – Gareth

+0

이 전혀 작동하지 않습니다. 나는 display : inline 속성을 목록에 넣었다. 그리고 여전히 열로 그것을 스타일링하고 있습니다.
을 제거하면 레이블 및 목록의 한 행에 불과합니다. – sarsnake

+0

나는 그것을 피들에서 시험해 보았다. http://jsfiddle.net/gUKwF/ 아니. – sarsnake

3

블록 요소 내에서 각 "목록/레이블"조합을 감쌀 수 있습니다. 그런 다음 같은 행에 여러 항목을 가지고 해당 요소를 떠 수 있습니다

<div class='lst'> 
    <label for="select1">Label1</label> 
    <select id="select1">...<select> 
</div> 

<div class='lst'> 
    <label for="select2">Label2</label> 
    <select id="select1">...<select> 
</div> 

<div class='lst'> 
    <label for="select3">Label3</label> 
    <select id="select3">...<select> 
</div>​ 

div.lst { 
float: left; 
margin: 0 5px 0 5px; 
} 

div.lst label { 
display: block; 
} 

예 바이올린 : http://jsfiddle.net/Z5hAm/ 당신은 아마 p 같은 다른 태그 그룹 labelselect해야합니다

+0

나는 divitis를 피하려고 노력했다. 그것을 테이블에 꽂을 수도 있습니다. – sarsnake

1

, div 또는 fieldset을 입력 한 다음 해당 요소를 display:inline-block 또는 float:left으로 만듭니다.

0

이러한 행이 여러 개 있기 때문에 테이블에 고정되어 있습니다. 모두 행을 정렬해야합니다.

+0

내 솔루션이 모든 추가 마크 업없이 완벽하게 정상적으로 작동하고 여러 행에 맞게 작업을 유지할 수 있다고 생각하면 불행합니다. (내 [업데이트 된 바이올린] (http://jsfiddle.net/L5sTY/9/) 참조). 물론,'width' 요구 사항이 당신에게 문제가되는지 나는 모른다. – ScottS

+0

당신의 시도를 끝내고, 감사합니다! 너비를 수정했다. 그렇지 않으면 그대로 남습니다. – sarsnake

+0

그것은 당신을 위해 일한 것을 기쁘게 생각합니다. 나는 그것이 정말로 필요하지 않을 때 당신이 테이블에 간다고 생각하는 것을 싫어했습니다. – ScottS