2010-08-08 3 views
0

내 UI에 rightToLeft 언어를 사용하고 있으므로 오른쪽에 텍스트 필드의 레이블이 있어야합니다. div로 float:right 라벨을 사용하고 div로 float:left 텍스트 필드를 사용해 보았습니다. 하지만 여전히 내 양식에 올바르게 정렬되지 않습니다.텍스트 필드의 오른쪽 정렬 레이블 위치에 대한 교차 브라우저 CSS

이 코드 샘플입니다 :

<s:form action="processRegister" cssClass="form"> 
    <div style="float:right;text-align:right"> 
     <s:text name="label12.msg"/> 
    </div> 
    <div style="float:left"> 
     <s:textfield name="username" cssClass="textfield" /> 
    </div> 

    <div style="float:right;text-align:right"> 
     <s:text name="label13.msg"/> 
    </div> 
    <div style="float:left"> 
     <s:password id="password1" name="password" cssClass="textfield"/> 
    </div> 
</s:form> 

나는 테이블을 사용하고 다른 열에 하나의 열 및 라벨에 텍스트 필드를 넣어 시도 할 때, 그들은 한 줄에 정렬되지 않았다.

+0

? 몇 가지 원인이 있습니다. –

답변

0

어떻게하면 제대로 정렬되지 않습니까? 일부 스크린 샷과 코드 예제를 보여줄 수 있습니까? 제대로 정렬되지 않은 각 입력란의 magin과 padding을 확인하고 싶습니까? 여백과 패딩을 0으로 설정하십시오.

실제로 다른 방법은 테이블을 사용하는 것입니다. 개별 셀 안에 패딩/여백이 0인지 확인하십시오. 그런 다음 셀의 정렬 속성을 사용하여 정렬 문제를 조정하십시오. 내가보기에 양식에 표를 사용하면 정렬 브라우저가 맞습니다.

+0

감사합니다.하지만 테이블을 사용하고 왼쪽 열에 textfield를 넣고 오른쪽 열에 레이블을 넣으려고하면 textfield가 전체 줄을 가져오고 한 줄에 레이블이 정렬되지 않습니다. 이 문제에 대해 간단한 테마를 사용했지만 유효성 검사가 작동하지 않도록 제거해야했습니다. –

+0

실제로 텍스트 필드는 텍스트 상자 또는 텍스트 영역이며, 코드에서 볼 때 해당 텍스트 상자와 비슷합니다. "텍스트 필드가 전체 줄을 가져오고 레이블과 함께 한 줄에 정렬되지 않습니다."라는 용어를 이해하지 못합니다. 어쩌면 시도해 볼 수 있을까요? 셀과 테이블의 너비를 제어하십시오. 이 여전히 도움이되지 않는 경우, 나는 <표 너비 = "300">

0

jsfiddle은 원하는대로 처리합니다. 열쇠는 모든 입력/라벨 행이 고유 한 라인에서 끝나도록 플로트를 삭제하는 것입니다. 가능할 때마다 부동 소수점을 사용하여 요소의 너비를 지정할 때도 좋습니다. 이렇게하면 실수로 부유하는 것을 방지 할 수 있습니다.

또한 유용성을 위해 <label> 요소를 추가 했으므로 화면 판독기는 레이블이 적용되는 <input>을 알 수 있습니다.

HTML

<form> 
    <div> 
     <label for="username">Username</label>  
     <input type="text" id="username" name="username" size="20"/> 
    </div> 
    <div> 
     <label for="password">Password</label> 
     <input type="password" id="password" name="password" size="20"/> 
    </div> 
</form> 

CSS 당신은 스크린 샷을해야합니까

div { 
    clear: both; 
    width: 300px; 
} 

div label { 
    float: right; 
    text-align: right; 
} 

div input { 
    float: left; 
} 
+0

고마워요 ""왼쪽 정렬한다. 나는 이것을 조사 할 필요가있다. 하지만 실제로 문제는 사용자로부터 입력을 얻기 위해 struts2의 태그를 사용자에게 부여해야하고 이 2 이고, 하나는 레이블 용이고 다른 하나는 입력 용입니다.나는 그 태그를위한 새로운 템플릿을 정의 할 필요가 있다고 생각한다. 어쨌든 귀하의 회신에 감사드립니다. –

+1

해당 텍스트 필드 ('')의'simple' 테마로 전환 할 수 있습니까? 그렇게하면 tr 태그와 td 태그가 렌더링되지 않습니다. 불행히도 테이블 행/테이블 셀을 계속 사용해야하는 경우 레이블 및 입력 필드의 위치를 ​​바꿀 수있는 방법은 많지 않습니다. – Pat

관련 문제