내 목록 항목 글 머리 기호가 부동 요소와 겹치는 이유 부동 소수점은 목록

일반 텍스트 단락과 함께 이미지를 띄우는 (XHTML Strict) 페이지가 있습니다. 단락 대신 목록을 사용하는 경우를 제외하고는 모두 잘 진행됩니다. 목록의 글 머리 기호가 부동 이미지와 겹칩니다.

목록의 여백이나 목록 항목을 변경해도 도움이되지 않습니다. 여백은 페이지 왼쪽에서 계산되지만 부동 소수점은 목록 항목을 자체 내부 의 오른쪽으로 푸시합니다 li. 따라서 여백은 이미지보다 넓게 만드는 경우에만 도움이됩니다.

이미지 옆에 목록을 플로팅해도 작동하지만 목록이 플로트 옆에 언제 있는지 모르겠습니다. 이 문제를 해결하기 위해 콘텐츠의 모든 목록을 띄우고 싶지 않습니다. 또한 떠 다니는 왼쪽은 이미지가 목록의 왼쪽 대신 오른쪽으로 떠오를 때 레이아웃을 엉망으로 만듭니다.

설정 li { list-style-position: inside }하면 글 머리 기호가 내용과 함께 이동하지만 줄 바꿈이 위 줄과 일치하지 않고 글 머리 기호와 정렬되기 시작합니다.

총알이 상자 바깥쪽으로 렌더링되고 상자의 내용물이 상자 자체가 아닌 오른쪽으로 상자의 내용물을 밀어 넣음으로써 문제가 발생합니다. 이것은 IE와 FF가 상황을 처리하는 방법이며, 내가 아는 한 사양에 따라 잘못되지 않았습니다. 문제는 어떻게 방지 할 수 있습니까?



답변

이 문제에 대한 해결책을 찾았습니다. 적용 ul { overflow: hidden; }받는 ul대신 상자의 내용의 박스 자체가 플로트에 의해 옆으로 밀어 보장하지만합니다.

ul { zoom: 1; }조건부 주석 에는 IE6 만 있으면 ul레이아웃이 있어야 합니다.


답변

Glen E. Ivey의 솔루션 개선 사항 추가 :

ul {
    list-style: outside disc;
    margin-left: 1em;
}
ul li {
    position: relative;
    left: 1em;
    padding-right: 1em;    
}​

http://jsfiddle.net/mblase75/TJELt/

목록이 플로팅 이미지 주위로 흐를 필요가있을 때 작동하기 때문에이 기술을 선호하지만 overflow: hidden기술은 그렇지 않습니다. 그러나 컨테이너에 넘치지 않도록 추가 padding-right: 1em해야합니다 li.


답변

“디스플레이”속성이있는 곳입니다. 플로팅 된 컨텐츠와 함께 목록이 작동하도록 아래 CSS를 설정하십시오.

디스플레이 : 테이블; 부동 컨텐츠와 함께 작동하지만 (갭을 채우는) 컨텐츠를 숨기지 않습니다. 테이블처럼 🙂

.img {
  float: left;
}

.table {
  display: table;
}
<img class="img" src="https://via.placeholder.com/350x350" alt="">
<ul>
  <li>Test content</li>
  <li>Test content</li>
  <li>Test content</li>
</ul>
<ul class="table">
  <li>Test content</li>
  <li>Test content</li>
  <li>Test content</li>
</ul>

편집 :이 목록을 분리 할 클래스를 추가해야합니다. 예를 들어 “ul.in-content”또는보다 일반적으로 “.content ul”


답변

글 머리 기호의 레이아웃을 변경하려면 list-style-position : inside 를 사용해보십시오 .


답변

에서 http://archivist.incutio.com/viewlist/css-discuss/106382 스타일을 가진 ‘리’요소 : 나는 나를 위해 일한 제안을 발견 :

position: relative;
left: 1em;

“1em”을 부동이 존재하지 않을 경우 목록 항목이 가질 수있는 왼쪽 패딩 / 여백의 너비로 대체합니다. 이것은 내 응용 프로그램에서 효과적이며, 플로트의 맨 아래가 목록의 중간에서 발생하는 경우를 처리합니다. 총알이 오른쪽 (로컬) 왼쪽 여백으로 다시 이동합니다.


답변

overflow: hidden작동

솔루션은 다음과 같이 쉽습니다.

ul {overflow: hidden;}

overflow:이외 의 블록 상자 는 내용에 대한 visible 새로운 블록 서식 컨텍스트 를 설정합니다. W3C 권장 사항 : http://www.w3.org/TR/CSS2/visuren.html#block-formatting

변장 한 내 웹 사이트 의 버튼 <li>은 다음과 같습니다. 들여 쓰기 가 실제로 표시되도록 브라우저의 뷰포트 (창)를 더 작게 만듭니다.

예를 들어 내 웹 사이트

관련 답변

예제가 포함 된 기사


답변

적어도 나를 overflow: auto;위해 당신의 ul작품에 추가함으로써 .

최신 정보

진행 상황 을 시각화하기 위해 jsfiddle 을 업데이트 했습니다. 을 갖는 경우 ul플로팅 옆 img의 내용은 ul실제 용기 플로트에 밀려 아닌 것이다. overflow: auto전체 ul-box 를 추가 하면 내용이 아닌 float에 의해 푸시됩니다.