텍스트 정렬 : <select> 또는 <option> 오른쪽


82

그것의 오른쪽에 정렬 텍스트에 가능하다면 누구 알고 있나요 <select>또는 더 구체적 <option>으로 요소 웹킷을 . IE를 포함한 브라우저 간 솔루션 일 필요는 없지만 가능하다면 순수한 CSS 여야합니다.

나는 둘 다 시도했다 :

select { text-align: right }option { text-align: right }, 그러나 둘 다 WebKit (Chrome, Safari 또는 Mobile Safari)에서 작동하지 않은 것 같습니다.

모든 도움을 감사드립니다!


3
어딘가에 option {text-align: right;}작동하지 않는 정말 멍청한 이유 가 있습니다.
Bob Stein

답변:


81

"dir"속성을 사용해 볼 수 있지만 원하는 효과를 얻을 수 있을지 모르겠습니까?

<select dir="rtl">
    <option>Foo</option>    
    <option>bar</option>
    <option>to the right</option>
</select>

데모 : http://jsfiddle.net/fparent/YSJU7/


2
사실 완벽합니다. appearance: none;어쨌든 속성 을 사용 했기 때문에 드롭 다운의 위치는 중요하지 않습니다. 감사!
BenM

31
모든 경우에 작동하는 것은 아닙니다. <option> 23 "x 42"</ option>은 "x 42"23을 산출합니다. rtl은 화면 판독기에서 읽는 방법도 변경합니다.
Jason T

9
특별한 경우에 어떻게 처리 될지 생각하지 않고 적절한 모양을 제공하기 위해 더러운 해킹처럼 보이지 않습니까?
Sergei Basharov 2013 년

28
IMHO 이것은 두 가지 이유로 나쁘다. 1. 의미 상 잘못되었습니다. 2. Chrome 30 dir="rtl"에서 드롭 다운을 나타내는 화살표를 왼쪽으로 이동합니다.
feklee

12
이것은 끔찍한 아이디어입니다. RTL은 오른쪽에서 왼쪽 순서로 문자를 그리는 언어를위한 것으로, 해당 콘텐츠가 LTR 언어로 작성된 경우 이러한 옵션에 넣은 콘텐츠를 매우 망치게됩니다. 예를 들어 '2017 년 8 월 10 일'과 같은 날짜는 '2017 년 8 월 10 일'로 표시됩니다. 당신은 그것이 당신의 텍스트에 무엇을하는지에 대한 통제권이 없습니다. 이것을 사용하지 마십시오.
devios1

71

다음 CSS는 화살표와 옵션을 모두 오른쪽 정렬합니다.

select { text-align-last: right; }
option { direction: rtl; }
<!-- example usage -->
Choose one: <select>
  <option>The first option</option>
  <option>A second, fairly long option</option>
  <option>Last</option>
</select>


2
@Laiacy 감사합니다-이것은 환상적입니다! 더 많은 찬성표를 받으실 것으로 기대합니다.
elPastor

@ pshep123 감사합니다. 나는 정말 당신의 의견에 감사드립니다 :)
Laiacy

드롭 다운을 클릭 할 때 옵션 값에 대해 작동하지 않는 것 같습니다 (적어도 Windows Google Chrome에서는). 드롭 다운이 토글되기 전에 만 작동합니다.
라이언

1
@Ryan, 내 대답을 편집했습니다. 이제 드롭 다운의 선택 및 옵션 값에 적용됩니다. 그것이 당신을 위해 작동하는지 알려주세요
Laiacy

저에게는 이것이 답입니다. 나는 오른쪽에 작은 화살표를 유지하고 싶었지만 옵션은 오른쪽으로 정렬되어야합니다 => 이것은 그것을 달성하는 대답입니다
Unchained

31

저에게 가장 좋은 해결책은

select {
    direction: rtl;
}

그리고

option {
    direction: ltr;
}

다시. 따라서 화면 판독기에서 텍스트를 읽는 방법에 변화가 없으며 서식 문제도 없습니다.


1
IE6-8 (IE8 +에 대해 알지 못함)이 올바르게 렌더링하지 않는다는 사실을 알아 냈습니다. :-/
Martin Schilliger

또한 Firefox에서는 올바르게 작동하지 않습니다. Webkit에서만 좋은 아이디어 인 것 같습니다…
Martin Schilliger 2013-12-03

옵션 html에 ()가 포함되어 있으면)가 줄의 시작 부분 (왼쪽의 첫 번째 문자 이전)으로 이동합니다. > _ <
rm-

또한 "()"를 &#40;&#41;?
Martin Schilliger

1
그러나 Firefox에서는 현재 (선택된) 값이 왼쪽에 "AM"( "AM 9:30")과 함께 표시됩니다.
Mark Schneider

25

나는 당신이 원하는 것은 다음과 같습니다.

select {
  direction: rtl;
}

여기에 fiddled : http://jsfiddle.net/neilheinrich/XS3yQ/


9
멋지지만 화살표는 왼쪽으로 이동합니다. 텍스트와 선택 화살표를 모두 오른쪽으로 정렬하려면 어떻게해야합니까?
Baptiste

1

선택한 자리 표시 자 값을 선택 상자의 오른쪽에 정렬하고 옵션을 오른쪽에 정렬해야하지만 방향을 사용할 때 같은 문제에 직면했습니다. rtl; 선택한 자리 표시 자에만 패딩을 적용하고 싶기 때문에 일부 오른쪽 패딩을 선택하고 적용한 다음 모든 옵션이 패딩으로 오른쪽으로 이동합니다.

다음 스타일로 문제를 해결했습니다.

select:first-child{
  text-indent: 24%;
  direction: rtl;
  padding-right: 7px;
}

select option{
  direction: rtl;
}

요구 사항에 따라 텍스트 들여 쓰기를 변경할 수 있습니다. 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.