> 웹 프론트엔드 > CSS 튜토리얼 > IE8 표준 모드에서 \'margin: 0 auto;\' 입력 요소를 중앙에 배치하지 않는 이유는 무엇입니까?

IE8 표준 모드에서 \'margin: 0 auto;\' 입력 요소를 중앙에 배치하지 않는 이유는 무엇입니까?

DDD
풀어 주다: 2024-11-29 16:46:10
원래의
500명이 탐색했습니다.

Why Doesn't

IE8 "margin: 0 auto;"와의 불일치 입력 요소용

요소 중심 정렬에 널리 사용됨에도 불구하고 "margin: 0 auto;" 속성이 IE8에서 일관되지 않은 동작을 보이는 것 같습니다. 최근 测试에서는 블록 요소 내에 포함된 입력 요소가 IE8의 표준 모드에서 중앙에 위치하지 못했습니다.

문제의 HTML 코드는 다음과 같습니다.

<div>
로그인 후 복사

브라우저 호환성

IE8 표준 모드에서 부적절한 요소 센터링 문제는 여러 곳에서 관찰되었습니다. 다음을 포함한 브라우저:

  • Firefox 3
  • Opera
  • Safari
  • Chrome
  • IE7 호환 모드

단, IE8 표준에는 없습니다. mode.

기본 문제

이 동작의 원인은 입력 요소가 본질적으로 블록 수준 요소가 아니라는 사실입니다. "display: block"이 입력에 적용되면 효과적으로 블록 수준 요소로 변환되어 "margin: 0 auto;"가 됩니다. 속성을 적용할 수 있습니다.

해결책

이 문제를 해결하려면 개발자는 입력 요소의 너비를 명시적으로 설정하거나 이를 블록 수준 요소 내에 포함하고 " text-align: center"를 컨테이너에 지정합니다.

사양 참조

CSS 2.1 사양에 따르면:

  • 블록 수준이 아닌 요소의 "display: block"은 명시적인 너비를 지정하지 않습니다.
  • "여백: 0 자동;" 블록 수준 요소에서는 상위 요소 내에서 수평으로 중앙에 배치됩니다.

따라서 입력 요소를 "margin: 0 auto;"로 중앙에 배치하지 않는 브라우저의 동작은 다음과 같습니다. 사양에 따라 올바르지 않습니다.

참고: 경우에 따라 DOCTYPE 선언을 추가하면 문제를 해결할 수 있습니다. 다음을 사용해 보십시오:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
로그인 후 복사

위 내용은 IE8 표준 모드에서 \'margin: 0 auto;\' 입력 요소를 중앙에 배치하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿