Чтобы ответить на мой собственный вопрос (но все еще ищу альтернативы), вычисление разницы с использованием «детектора» шириной 100% и затем изменение размера помогает мне.Как я уже сказал, использование Javascript для исправления этого не является проблемой в моем случае, но, вероятно, это не то, как вы хотите стилизовать свой собственный сайт:)
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<style type="text/css">
#outer {
display: inline-block;
width: 200px;
height: 100px;
overflow: auto;
}
.detector {
width: 100%;
height: 0px;
}
.entry {
display: inline-block;
width: 200px;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
var outer = $("#outer");
var detector = $("#outer .detector");
var scrollsize = 200 - detector.width();
outer.width(200 + scrollsize);
});
</script>
</head>
<body>
<div id="outer">
<div class="detector">
</div>
<div class="entry">
I'm a short entry
</div>
<div class="entry">
I'm an entry div but I'm very, very, very, very, very, very, very, very, very, very long
</div>
<div class="entry">
I'm an entry div but I'm very, very, very, very, very, very, very, very, very, very long
I'm an entry div but I'm very, very, very, very, very, very, very, very, very, very long
</div>
</div>
</body>
</html>
Это вычислит разницу между доступным пространством (который будет 200) и используемое пространство "детектором" (который, например, 185px).Это означает, что размер полосы прокрутки составляет 15 пикселей.Увеличение ширины #outer на 15px даст нам область шириной 200px (и уберет горизонтальную полосу прокрутки)