오른쪽 대신 왼쪽으로 오버플로


105

overflow:hidden사용자가 입력 할 때 전화 번호를 표시 하는 div가 있습니다. div 내부의 텍스트는 오른쪽으로 정렬되고 들어오는 문자는 텍스트가 왼쪽으로 커짐에 따라 오른쪽에 추가됩니다.

그러나 텍스트가 div에 맞지 않을만큼 충분히 크면 숫자의 마지막 문자가 자동으로 잘리고 사용자가 입력 한 새 문자를 볼 수 없습니다.

내가하고 싶은 것은 div가 콘텐츠의 가장 오른쪽을 표시하고 왼쪽으로 넘쳐나는 것처럼 왼쪽 문자를 자르는 것입니다. 이 효과를 어떻게 만들 수 있습니까?

왼쪽으로 넘쳐나는 전화 번호


텍스트를 위에서 아래로, 오른쪽으로 정렬하려는 사람은 stackoverflow.com/a/53576895/4418836
Jordan

답변:


149

다음을 사용해 보셨습니까?

direction: rtl;

자세한 내용은 http://www.w3schools.com/cssref/pr_text_direction.asp를 참조하십시오
.


22
경고 : / 및 *와 같은 특수 문자가있는 계산기 디스플레이에서는 작동하지 않습니다.
Max

11
천 단위 구분 기호의 ""와 같이 미국 숫자 형식이 아닌 로케일에서도 작동하지 않습니다. 이것은 올바른 해결책이 아닙니다
Robert Slaney

12
이 속성은 정렬을위한 것이 아니며 내부의 단어 순서도 변경합니다. Fe 14:00–15:0015:00–14:00Firefox에서 켜집니다 .
Andy

3
이것은 캐릭터의 순서도 반대로하지 않습니까?
evolutionxbox

7
예, direction: ltr효과를 반전하려면 포함 된 요소를 다른 요소에 규칙으로 래핑해야합니다 .
Óscar Gómez Alcañiz

56

나는 같은 문제가 있었고 두 개의 div를 사용하여 해결했습니다. 외부 div는 왼쪽에서 클리핑을 수행하고 내부 div는 오른쪽에서 플로팅을 수행합니다.

.outer-div {
  width:70%;
  margin-left:auto;
  margin-right:auto;
  text-align:right;
  overflow:hidden;
  white-space: nowrap;
}

.inner-div {
  float:right;
}

:

<div class="outer-div">
  <div class="inner-div">     
    <p>A very long line that should be trimmed on the left</p>
  </div>
</div>

내부 div 안에 콘텐츠를 넣고 왼쪽에서 오버플로 할 수 있어야합니다.


8
나는 이것이 작동하는 것을보고 싶었 기 때문에 이것을 테스트하기 위해이 JSFiddle 을 만들었고 훌륭하게 작동했습니다! 좋은 대답입니다! 감사!
WebWanderer

4
방향 rtl에는 모든 종류의 부작용이 있기 때문에 이것은 훌륭한 대답입니다. 내부 div가 왼쪽으로 정렬되고 div를 초과하는 경우 왼쪽으로 만 잘 리도록하려면 .outer-div를 max-width : 100 %로 설정하고 display : inline-block을 표시합니다. 여기를
Luke

2
JSFiddle WebWanderer에 감사드립니다. overflow: visible내용 이 왼쪽에서 유출 될 수 있도록 사용 하도록 업데이트했습니다 .
joeytwiddle

8

할 수 float:right있고 왼쪽으로 오버플로되지만 제 경우에는 창이 요소보다 크면 div를 중앙에 배치해야하지만 창이 더 작 으면 왼쪽으로 오버플로됩니다. 그것에 대한 생각은?

나는 놀아 보았지만 direction:rtl블록 요소의 오버플로를 변경하지 않는 것 같습니다.

유일한 답은 오른쪽에 div가 오른쪽에 있고 오른쪽에 div가 있고 jquery를 사용하여 div의 너비를 오른쪽에 나머지 창 공간의 절반으로 설정하는 것 뿐이라고 생각합니다.


동의하다. 부모를 오른쪽으로 플로팅하고 중간 컨테이너가 오버플로를 숨김으로 설정하지 않았는지 확인합니다.
Lisa

8

쉽게 수행 <span>할 수 있으며 오버플로가 숨겨진 요소 내부의 오른쪽에 스팬 절대 위치를 지정합니다.

<div style="width: 65px; height: 20px;
            overflow: hidden; position: relative; background: #66FF66;">
    <span style="position: absolute; right: 0;">05451234567</span>
</div>

:)

rgrds 제이크


5

이것은 매력처럼 작동했습니다.

<div style="direction: rtl;">
  <span style="white-space: nowrap; direction: ltr; display: inline-block;">your short or long comment<span>
</div>

0

HTML 마크 업을 수정하고 WebWanderer의 jsFiddle 솔루션에 일부 자바 스크립트를 추가했습니다.

https://jsfiddle.net/urulai/bfzqgreo/3/

HTML :

<div id="outer-div">

    <p>ipsum dolor amet bacon venison porchetta spare ribs, tongue turducken alcatra doner leberkas t-bone rump ball tip hamburger drumstick. Shoulder strip steak ribeye, kielbasa fatback pig kevin drumstick biltong pork short loin rump. Biltong doner ribeye, alcatra landjaeger tenderloin drumstick t-bone pastrami andouille. Sirloin spare ribs fatback, bresaola strip steak alcatra landjaeger kielbasa cupim doner. </p>

</div>

CSS :

#outer-div {
  width:100%;
  margin-left:auto;
  margin-right:auto;
  text-align:right;
  overflow:hidden;
  white-space: nowrap;
  border:1px solid black;
}

JS :

let outer = document.getElementById("outer-div");
outer.scrollLeft += outer.scrollWidth;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.