크롬에서 - 웹키트박스 레이아웃의 버그
83698 단어 chrome
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> </title>
</head>
<body>
<style>
*{
margin:0;
paddign:0;
}
.webbox{
display: -webkit-box;
}
.webbox-vertical{
display: -webkit-box;
-webkit-box-orient:vertical;
}
.box-flex{
-webkit-box-flex:1;
}
body,html,#div{
width:100%;
height:100%;
}
.auto{
overflow:auto;
}
</style>
<div id="div" class="webbox-vertical">
<div class="webbox">
............<br />
............<br />
</div>
<div class="webbox">
ddd<br />
ddd<br />
ddd<br />
ddd<br />
</div>
<div class="webbox box-flex">
<div class="webbox box-flex auto">
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<span>sfsdfsfsfsd</span>
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<span>sfsdfsfsfsd</span>
<a href="###">aaa</a><br />
<span>sfsdfsfsfsd</span>
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<span>sfsdfsfsfsd</span>
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br />
<a href="###">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="###">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="###">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="###">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="###">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="###">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br />
</div>
<div class="webbox">
111111111<br />
111111111<br />
111111111<br />
111111111<br />
</div>
</div>
</div>
<script>
var aS = document.getElementsByTagName("span");
for(var i = 0; i < aS.length ; i++) {
aS[i].addEventListener("click",function(ev){
console.log(ev);
})
};
/*
chrome webbox bug;
webbox a audio,checkbox ,
, , , ;
*/
</script>
</body>
</html>
웹키트박스의 레이아웃 요소 중 a링크를 클릭하면 이 링크의href는 ###이고 이 요소의 부급에 스크롤 바가 있으면 스크롤 바가 자동으로 맨 위로 굴러간다(정상적인 상황에서는 뛰지 않는다).
너무 싱겁게 말하면,
해결 방법은 웹키트박스 레이아웃의 요소에 요소 스타일을 width:100%로 추가하는 것이다.position:relative;overflow:auto;,
그리고 이 원소의 하위 원소에 left:0 스타일의 원소를 추가합니다.top:0;bottom:0;position:absolute; 그리고 스크롤이 필요한 HTML 코드를 넣고 스크롤 바가 나타났습니다.
이것이 왜 그런지 나도 모르겠다.mathon(여행 브라우저) 테스트에서 이 문제가 없었기 때문에 브라우저 문제로 귀결되고 인터넷에 접속해도 자료를 찾지 못했기 때문에 기록하고 구덩이를 막는다.
구현된 코드는 다음과 같습니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> </title>
</head>
<body>
<style>
*{
margin:0;
paddign:0;
}
.webbox{
display: -webkit-box;
}
.webbox-vertical{
display: -webkit-box;
-webkit-box-orient:vertical;
}
.box-flex{
-webkit-box-flex:1;
}
body,html,#div{
width:100%;
height:100%;
}
.auto{
overflow:auto;
}
</style>
<div id="div" class="webbox-vertical">
<div class="webbox">
............<br />
............<br />
</div>
<div class="webbox">
ddd<br />
ddd<br />
ddd<br />
ddd<br />
</div>
<div class="webbox box-flex">
<div class="webbox box-flex">
<div style="width:100%;position:relative;overflow:auto;">
<div style="left:0;top:0;bottom:0;position:absolute;">
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<span>sfsdfsfsfsd</span>
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<span>sfsdfsfsfsd</span>
<a href="####">aaa</a><br />
<span>sfsdfsfsfsd</span>
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<span>sfsdfsfsfsd</span>
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br />
<a href="####">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="####">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="####">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="####">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="####">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br /> <a href="####">aaa</a><br /><input class="input-index ng-pristine ng-untouched ng-valid" ng-disabled="topic.checked" ng-model="topic.checked" data-topic-id="15Q2700664" type="checkbox"><br />
</div>
</div>
</div>
<div class="webbox">
111111111<br />
111111111<br />
111111111<br />
111111111<br />
</div>
</div>
</div>
<script>
var aS = document.getElementsByTagName("span");
for(var i = 0; i < aS.length ; i++) {
aS[i].addEventListener("click",function(ev){
console.log(ev);
})
};
/*
chrome webbox bug;
webbox a audio,checkbox ,
, , , ;
*/
</script>
</body>
</html>
평상시 레이아웃에서 html 표준에 부합되거나 비참하게 죽을 수 있으니 주의해야 한다.
장신욱의 웹키트 관련 자료를 배울 수 있습니다열다.
w3c의 자료, 열다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
가난한 사람의 바이오닉 판독나는 이 매우 멋지다는 것을 알았습니다. 그러나 그들의 Chrome 확장 프로그램은 사용하기에 그리 즐겁지 않습니다. 그래서 빠른 확장 프로그램을 만듭니다. 그러나 알고리즘은 원래 알고리즘만큼 복잡하지 않습니다. 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.