다양한 브라우저의 호환성 문제에 대한 자세한 설명
브라우저 호환성 문제는 브라우저마다 동일한 코드 조각에 대한 구문 분석이 다르기 때문에 페이지 표시 효과가 일관되지 않는 상황을 의미합니다. 대부분의 경우, 우리의 요구 사항은 사용자가 웹 사이트를 보거나 시스템에 로그인하기 위해 어떤 브라우저를 사용하든 통합된 디스플레이 효과가 있어야 한다는 것입니다. 따라서 브라우저 호환성 문제는 프런트엔드 개발자가 자주 접하고 해결해야 하는 문제입니다.
브라우저 호환성에 대해 알아보기 전에 프런트엔드 개발자를 두 가지 범주로 나누고 싶습니다.
첫 번째 범주:
는 디자인 도면에 따라 정확하게 개발하는 프런트엔드 개발자라고 할 수 있습니다. 1px까지 정확하게 하려면 설계 도면의 단점을 쉽게 발견할 수 있고 드물게 브라우저 호환성 문제가 발생하며 이러한 문제는 종종 브라우저 버그로 인해 발생하며 그들이 생성하는 페이지는 나중에 유지 관리하기 쉽습니다. code 재사용 문제도 거의 없고 비교적 안정적이고 신뢰할 수 있는 코드라고 할 수 있습니다.
두 번째 범주:
기본적으로 디자인 도면에 따라 개발하는 프런트엔드 개발자입니다. 간격, 줄 높이, 그림 위치 등과 같은 많은 세부 사항이 매우 다르며, 이는 종종 몇 픽셀씩 다릅니다. 특정 효과의 실현은 반복적인 디버깅을 통해서도 달성됩니다. 이 효과가 발생하는 구체적인 이유는 여전히 모호하며 전체적인 레이아웃은 매우 취약합니다. 조금만 바꾸면 엉망이 됩니다. 코드가 왜 이런 식으로 작성되었는지 모르겠습니다. 이러한 개발자는 종종 호환성 문제로 어려움을 겪습니다. 이 브라우저를 수정한 후 다른 브라우저가 엉망이 되었습니다. 계속해서 바꿔봤지만 여전히 아무것도 몰랐습니다. 실제로 그들이 직면한 대부분의 호환성 문제는 브라우저의 탓이 아니라 기술 자체의 탓이어야 합니다.
이 글은 주로 첫 번째 범주인 엄격한 개발자를 대상으로 하므로 여기서는 주로 브라우저 구문 분석 차이의 관점에서 호환성 문제를 분석합니다.
방법/단계
브라우저 호환성 문제 1: 서로 다른 브라우저에 있는 태그의 기본 외부 패치와 내부 패치가 다릅니다
문제 증상: 스타일 제어 없이 태그 몇 개만 작성하면 됩니다. 여백과 패딩 꽤 다릅니다.
발생 빈도: 100%
해결 방법: CSS *{margin:0;padding:0;}
참고: 이는 브라우저 호환성 문제를 해결하는 가장 일반적이고 쉬운 문제입니다. 거의 모든 경우에 와일드카드 문자 *가 사용됩니다. CSS 파일의 시작 부분을 수정하여 각 태그의 내부 및 외부 패치를 0으로 설정합니다.
브라우저 호환성 문제 2: 블록 속성 태그가 떠 있고 가로 여백이 발생한 후 IE6에 표시되는 여백이 설정 값보다 큽니다.
문제 증상: 스타일 컨트롤을 추가하지 않고 태그 몇 개만 작성하면 각각의 여백과 패딩은 상당히 다릅니다.
발생 빈도: 100%
해결 방법: CSS *{margin:0;padding:0;}
참고: 이는 브라우저 호환성 문제를 해결하는 가장 일반적이고 쉬운 문제입니다. 거의 모든 경우에 와일드카드 문자 *가 사용됩니다. CSS 파일의 시작 부분을 수정하여 각 태그의 내부 및 외부 패치를 0으로 설정합니다.
브라우저 호환성 문제 3: 높이 라벨을 더 작게 설정하세요(일반적으로 10px 미만). IE6, IE7, Aoyou에서 높이가 설정한 높이를 초과합니다.
문제의 증상: 이 높이입니다. IE6, 7 및 Aoyou의 라벨은 제어되지 않으며 설정한 높이를 초과합니다.
발생 빈도: 60%
해결 방법: 높이를 초과하는 라벨에 대해 오버플로를 숨기거나 줄 높이를 높이보다 낮게 설정합니다. 당신이 설정합니다.
참고: 이 상황은 일반적으로 작은 둥근 모서리 배경을 설정한 라벨에서 발생합니다. 이 문제의 원인은 IE8 이전의 브라우저가 레이블에 최소 기본 줄 높이를 제공하기 때문입니다. 라벨이 비어 있더라도 라벨 높이는 여전히 기본 줄 높이에 도달합니다.
브라우저 호환성 문제 4: 인라인 속성 태그, display:block 설정 후 부동 레이아웃 사용, 가로 여백 있음, IE6 간격 버그
문제 증상: IE6의 간격 비율이 설정된 간격을 초과합니다
발생 확률: 20%
해결 방법: 추가 디스플레이:인라인;디스플레이:테이블;
비고: 인라인 속성 태그, 너비와 높이를 설정하려면 디스플레이:블록을 설정해야 합니다.(입력 태그는 제외) 특별한). 부동 레이아웃과 가로 여백을 사용한 후 IE6에서는 블록 속성 부동 후 가로 여백 버그가 있습니다. 하지만 인라인 속성 태그 자체이기 때문에 display:inline을 추가하면 높이와 너비를 설정할 수 없습니다. 이때 display:inline 뒤에 display:talbe도 추가해야 합니다.
브라우저 호환성 문제 5: 이미지에는 기본적으로 간격이 있습니다
문제 증상: 여러 img 태그를 함께 사용하면 일부 브라우저에 기본 간격이 있고 문제에 언급된 와일드카드를 추가해도 작동하지 않습니다. .
발견 확률: 20%
해결책: img 레이아웃에 float 속성을 사용하세요
참고: img 태그는 인라인 속성 태그이므로 컨테이너 너비를 초과하지 않는 한 img 태그는 일렬로 정렬되지만 일부 브라우저에서는 img 태그 사이에 공백이 있을 수 있습니다. 이 간격을 제거하고 float를 사용하는 것이 올바른 방법입니다. (제 학생 중 한 명은 마이너스 마진을 사용하고 있습니다. 해결은 가능하지만 마이너스 마진 자체는 브라우저 호환성 문제를 쉽게 일으킬 수 있는 사용법이므로 사용을 금지합니다)
브라우저 호환성 문제 6: 라벨의 최소 높이 설정 min-height가 호환되지 않습니다
문제 증상: min-height 자체가 호환되지 않는 CSS 속성이므로 min-height 설정이 다양한 브라우저에서 잘 허용되지 않습니다. 호환 가능
발생 확률: 5%
해결 방법: 라벨의 최소 높이를 200px로 설정하려면 다음과 같이 설정해야 합니다: {min-height:200px; height:auto !important height: 200px; Overflow: visible;}
참고: B/S 시스템의 프런트엔드를 열 때 이러한 요구 사항이 필요한 상황이 많이 있습니다. 콘텐츠가 특정 값(예: 300px)보다 작은 경우. 컨테이너의 높이는 300px입니다. 콘텐츠 높이가 이 값보다 크면 스크롤 막대가 나타나는 대신 컨테이너의 높이가 올라갑니다. 이때 우리는 이 호환성 문제에 직면하게 됩니다.
브라우저 호환성 문제 7: 투명성을 위한 호환 가능한 CSS 설정
호환 가능한 페이지를 만드는 방법은 다음과 같습니다. 작은 코드 조각(레이아웃의 한 줄 또는 블록)을 작성할 때마다 물론, 특정 수준까지 능숙하다면 그렇게 번거롭지는 않을 것입니다. 호환성 문제가 자주 발생하는 초보자에게 권장됩니다. 많은 호환성 문제는 브라우저의 태그 기본 속성에 대한 다양한 구문 분석으로 인해 발생합니다. 이러한 호환성 문제는 약간의 설정으로 쉽게 해결할 수 있습니다. 태그의 기본 속성을 잘 알고 있으면 호환성 문제가 발생하는 이유와 해결 방법을 더 잘 이해할 수 있습니다.
/* CSS 해킹*/
저는 해커를 거의 사용하지 않습니다. 어쩌면 IE와 호환되지 않는 코드를 작성하고 이를 해결하기 위해 해킹을 사용하는 것을 좋아하지 않습니다. 하지만 해커는 여전히 사용하기 매우 쉽습니다. 해커를 사용하면 브라우저를 IE6, Aoyou, 기타(IE8 chrome ff safari Opera 등)로 나눌 수 있습니다.
◆제가 IE6에서 아는 해커는 밑줄_과 별표*
◆제가 아는 해커입니다. IE7은 별표입니다 *
예를 들어 이것은 CSS 설정입니다:
height:300px; 저는 *heihgt도 알고 있으므로 IE6이 *height:200px를 읽으면 이전 충돌 설정을 덮어쓰고 높이가 200px인 것으로 생각합니다. 계속 읽으세요. IE6도 _height를 알고 있으므로 200px 높이 설정을 덮어쓰고 높이를 100px로 설정합니다.
IE7과 Aoyou도 300px 높이 설정에서 읽습니다. _height를 모르기 때문에 *height200px을 읽으면 멈춥니다. 따라서 그들은 높이를 200px로 구문 분석하고 나머지 브라우저는 첫 번째 높이인 300px만 알고 있으므로 높이를 300px로 구문 분석합니다. 우선순위와 충돌이 동일한 속성을 설정하면 이전 속성을 덮어쓰게 되므로 작성 순서가 매우 중요합니다.
위 내용은 다양한 브라우저의 호환성 문제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Apache Server는 브라우저와 웹 사이트 서버 간의 브리지 역할을하는 강력한 웹 서버 소프트웨어입니다. 1. HTTP 요청을 처리하고 요청에 따라 웹 페이지 컨텐츠를 반환합니다. 2. 모듈 식 디자인은 SSL 암호화 지원 및 동적 웹 페이지와 같은 확장 된 기능을 허용합니다. 3. 보안 취약점을 피하고 고성능 웹 애플리케이션을 구축하기 위해 보안 취약점을 피하고 스레드 카운트 및 타임 아웃 시간과 같은 성능 매개 변수를 최적화하기 위해 구성 파일 (예 : 가상 호스트 구성)을 신중하게 설정해야합니다.

CentOS 시스템 하의 HDFS 파일 시스템에 대한 설치, 구성 및 최적화 안내서이 기사에서는 CentOS 시스템에 HDF (Hadoop Distributed File System)를 설치, 구성 및 최적화하는 방법을 안내합니다. HDFS 설치 및 구성 Java 환경 설치 : 먼저 적절한 Java 환경이 설치되어 있는지 확인하십시오. /etc/profile 파일 편집, 다음을 추가하고 /usr/lib/java-1.8.0/jdk1.8.0_144를 실제 Java 설치 경로로 바꾸십시오 : Exportjava_home =/usr/lib/java-1.8.0/jdk1.8.0_144 exportpath = $ j

CRAFTCMS를 사용하여 웹 사이트를 개발할 때 특히 CSS 및 JavaScript 파일을 자주 업데이트 할 때 자주 리소스 파일 캐싱 문제가 발생하면 이전 버전의 파일이 여전히 브라우저에서 캐싱 될 수 있으므로 사용자는 최신 변경 사항을 볼 수 없습니다. 이 문제는 사용자 경험에 영향을 줄뿐만 아니라 개발 및 디버깅의 어려움을 증가시킵니다. 최근에 나는 프로젝트에서 비슷한 문제를 겪었고, 약간의 탐색 후 플러그인 Wiejeben/Craft-Laravel-Mix를 발견하여 캐싱 문제를 완벽하게 해결했습니다.

NGINX 성능 모니터링 및 문제 해결은 주로 다음 단계를 통해 수행됩니다. 1. NGINX-V를 사용하여 버전 정보를보고 STUB_STATUS 모듈을 활성화하여 활성 연결 수, 요청 및 캐시 적중률을 모니터링합니다. 2. 상위 명령을 사용하여 시스템 리소스 점유, Iostat 및 VMSTAT 모니터 디스크 I/O 및 메모리 사용을 모니터링합니다. 3. TCPDUMP를 사용하여 패킷을 캡처하여 네트워크 트래픽을 분석하고 네트워크 연결 문제를 해결합니다. 4. 동시 처리 기능이 충분하지 않거나 과도한 프로세스 컨텍스트 오버 헤드를 피하기 위해 작업자 프로세스 수를 올바르게 구성합니다. 5. 부적절한 캐시 크기 설정을 피하기 위해 Nginx 캐시를 올바르게 구성하십시오. 6. awk 및 grep 명령 또는 elk 사용과 같은 nginx 로그를 분석하여

데비안 시스템에서 HTTPS 서버를 구성하려면 필요한 소프트웨어 설치, SSL 인증서 생성 및 SSL 인증서를 사용하기 위해 웹 서버 (예 : Apache 또는 Nginx)를 구성하는 등 여러 단계가 포함됩니다. 다음은 Apacheweb 서버를 사용하고 있다고 가정하는 기본 안내서입니다. 1. 필요한 소프트웨어를 먼저 설치하고 시스템이 최신 상태인지 확인하고 Apache 및 OpenSSL을 설치하십시오 : Sudoaptupdatesudoaptupgradesudoaptinsta

CentOS 시스템에서 HDFS (Hadoop 분산 파일 시스템)의 상태를 모니터링하는 방법에는 여러 가지가 있습니다. 이 기사는 가장 적합한 솔루션을 선택하는 데 도움이되는 몇 가지 일반적으로 사용되는 방법을 소개합니다. 1. Hadoop의 자체 웹 인터페이스 인 Hadoop의 자체 Webui를 사용하여 클러스터 상태 모니터링 기능을 제공하십시오. 단계 : Hadoop 클러스터가 가동되고 있는지 확인하십시오. webui에 액세스하십시오 : 브라우저에 http : // : 50070 (hadoop2.x) 또는 http : // : 9870 (hadoop3.x)을 입력하십시오. 기본 사용자 이름과 비밀번호는 일반적으로 HDFS/HDF입니다. 2. 명령 줄 도구 모니터링 Hadoop은 모니터링을 용이하게하기위한 일련의 명령 줄 도구를 제공합니다.

Tomcat 로그에서 스레드 상태를 보려면 다음 방법을 사용할 수 있습니다. TomcatmanagerWeb 인터페이스 : 브라우저에 Tomcat (일반적으로 http : // localhost : 8080/manager)의 관리 주소를 입력하고 로그인 한 후 JMX 모니터링 도구를 사용하여 Tomcat의 MBEAN Server를 사용하여 MBEAN의 MBEAN의 MBEN 모니터를 사용합니다. 스레드 풀. jconsole에서 선택하십시오

이 기사에서는 Nginx의 구성 및 구성 방법을 소개합니다. 1. nginx 설치 : Centos에서 sudoyumininstallnginx를 사용하고 Ubuntu에서 sudoapt-getinstallnginx를 사용하고 설치 후 sudosystemctlstartnginx로 시작하십시오. 2. 기본 구성 : /etc/nginx/nginx.conf 파일을 수정하고 주로 서버 블록에서 청취 (포트) 및 루트 (사이트 루 디렉토리) 지침을 수정하고 수정 후 sudosystemctlrestartnginx를 사용하여 다시 시작하고 적용하십시오. 3. 가상 호스트 구성 : nginx.co에서
