필요 DOCTYPE을 파일의 맨 위에 놓음으로써 IE9 '버그를 수정했습니다.'내가 페이지 상단의 'DOCTYPE'선언을 넣어 가지고 있던 IE9의 버그를 수정하기 위해 ..... <DOCTYPE의 HTML 이전으로 session_start()를 호출하는 등
IE9의 '버그'는 파일 상단의 DOCTYPE없이 - 인라인 블록 스타일을 가진 div는 인라인 블록 스타일을 무시하고 세로로 쌓아 올 것입니다.
인라인 블록 스타일의 페이지에는 3 개의 div가 있고 Firefox와 Android 브라우저에는 인라인 블록이있는 3 개의 div가 가로로 왼쪽에서 오른쪽으로 한 행에 나타납니다.
IE9에서는 첫 번째 줄로 DOCTYPE을 추가해야했습니다 (두 번째 줄이 아니라 맨 위의 PHP 섹션 뒤에 - DOCTYPE이 첫 번째 줄이어야 함).
그런 다음 IE9는 인라인 블록 스타일을 준수합니다.
문제는 navbar.php 안에 있습니다. 나는 session_start()를 호출합니다.
아시다시피 session_start()는 브라우저 출력을 보내기 전에 첫 번째 행이어야합니다. 그렇지 않으면 errmsg가 표시됩니다. . 다음과 같이 :
Warning: session_start() [function.session-start]: Cannot send
session cache limiter - headers already sent (output started at
/homepages/42/d329883313/htdocs/ourSite/landing_page.php:2) in
/homepages/42/d329883313/htdocs/ourSite/navBar.php on line 1
(PS 내 IDE 그래서 BOM은 문제가되지 않습니다 내가 이미 확인했습니다 UTF-8로 파일을 저장 - 나는 어디서나 DOCTYPE의 끝 사이에 여분의 공백이없는 그리고으로 session_start의 시작() 중 하나으로 session_start()가 있기 때문에 브라우저에 무언가를 보내는 DOCTYPE의 파괴된다)
내 질문 :..
내 인라인 블록을 유지할 수있는 방법와 DOCTYPE과 session_start()?
간단한 UI 스타일의 기능이 서로 'MUST-BE-ON-LINE-1' 코드 요소 (DOCTYPE 및 session_start)에 맞지 않는 것은 좋지 않습니다.
php session_start(); ?> 여분의 공백없이 페이지 상단에 있습니까? PHP는 서버 측이고 HTML은 클라이언트 측이므로 IE9가 페이지를 해석하기 전에 PHP가 사라져야합니다. –
php가 DOCTYPE 전에 발생하면 IE9는 페이지에있는 div의 인라인 블록을 무시합니다. DOCTYPE **는 파일의 맨 위에 있어야합니다 **. 당신의 추론을 이해합니다. 하지만 DOCTYPE을 닫을 때?> 공백없이 IE9는 인라인 블록 스타일을 무시합니다. 이유를 모르겠다. 어쩌면 웹 서버는 PHP를 처리 한 후 페이지 상단에 뭔가를 넣을 수도 있습니다. 모르겠습니다. – wantTheBest
충분히 공정하지만, 당신이 똑바로 쓴다고 말했을 때, require_once 이후 나 session_start 이후에 (자체적으로) 의미합니까? –