텍스트 정렬 : <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.