javascript - 文本不会填满 Div

标签 javascript html css web

我正在为调用中心设计一个统计板,但我无法正确调整 2 个元素的大小。我使用了一个名为 FitText 的自动文本调整器(下面的链接)。除了代码中列出的 100% 和 100 之外,我已经获得了与 FitText 一起使用的所有其他元素。我不明白为什么 100% 和 100 与它们包含的 div 的大小相比保持这么小。两个容器都是 100% 宽度。我试过数百种 CSS 组合都无济于事。任何帮助将不胜感激。通过下面的请求,这里是 JSFiddle 链接。

http://jsfiddle.net/neggly/57tVW/

CSS

#wrap {
    position: absolute;
    height:100%;
    width:100%;
    margin:0 auto;
    background-color: black;
}

#statuscolorwrap
{
    background-color: aqua;
    float: left;
    width: 1%;
    height: 100%;
}

#numberwrap
{
    background-color: #ff0;
    float: left;
    width: 20%;
    height: 100%;
}

#announcementwrap
{
    background-color: coral;
    float: left;
    width: 79%;
    height: 100%;
}

#queuewrapper
{
    height:40%;
    width:100%;
    float: top;
    background-color: darkorchid;
}

#queuecolors
{
    height:40%;
    width:100%;
    float: top;
    background-color: cadetblue;
}

#queuepercentage
{
    height: 50%;
    width: 100%;
    float: top;
    background-color: chartreuse;
}

#queueholding
{
    height: 50%;
    width: 100%;
    float: bottom;
    background-color: crimson;
}

#topcolor
{
    height: 50%;
    width: 100%;
    float: top;
    background-color: darkseagreen;
}

#bottomcolor
{
    height: 50%;
    width: 100%;
    float: bottom;
    background-color: moccasin;
}

#datetimewrapper
{
    width:100%;
    height:5%;
    float: top;
    background-color: deepskyblue;
}

#messages
{
    width: 100%;
    height: 60%;
    float: top;
    background-color: darkorchid;
    overflow-y: auto;
}

.messagewrapper
{
    width: 100%;
    height: 100px;
    float:top;
    background-color: azure;
}

.messageimportance
{
    float:left;
    width: 5%;
    height: 100%;
    background-color: darkslategrey;
}

.messagesubject
{
    float:left;
    width: 95%;
    height: 100%;
    background-color: blanchedalmond;
}

h1
{
    font: Helvetica, sans-serif;
    margin:0;
    padding:0;
    text-align: center;
}

h2
{
    font: Helvetica, sans-serif;
    margin:0;
    padding:0;
    text-align: center;
}

h3
{
    font: Helvetica, sans-serif;
    font-weight: bold;
    margin:0;
    padding:0;
    text-align: center;
}

#anpicturewrap
{
    float:top;
    width:100%;
    height:45%;
    background-color: darkcyan;
}

#antextwrap
{
    float:top;
    width:100%;
    height:50%;
    background-color: darkkhaki;
    overflow-y: auto;
}

img
{
    max-width: 100%;
    max-height: 100%;
    display:block;
    margin:auto;
}

h4
{
    font: Helvetica, sans-serif;
    margin: 0;
    padding: 0;
    text-align: left;
}

#text
{
    width: auto;
    margin-left: 40px;
    margin-right:40px;
    margin-bottom: 30px;
}

.subjecttext
{
    height: 100%;
    width:100%;
    margin-left: 10px;
    margin-right: 10px;
    margin-top: auto;
    margin-bottom: auto;
}

HTML

<html>
    <head>
        <title>Virginia Summary</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="reset.css"/>
        <link rel="stylesheet" href="base.css"/>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script src="js/libs/jquery/jquery.fittext.js" type="text/javascript"></script>
    </head>
    <body>
        <div id="wrap">
            <div id="numberwrap">
                <div id="queuewrapper">
                    <div id="queuepercentage">
                        <div class="subjecttext">
                            <h1 id="fittext1">1</h1>
                        </div>
                    </div>
                    <div id="queueholding">
                        <h1 id="fittext2">100</h1>
                    </div>
                </div>
                <div id="messages">
                    <div class="messagewrapper">
                        <div class="messagesubject">
                            <div class="subjecttext">
                                <h2 id="fittext3">Enter Subject here</h2>
                            </div>
                        </div>
                        <div class="messageimportance">

                        </div>
                    </div>
                </div>
            </div>
            <div id ="statuscolorwrap">
                <div id="queuecolors">
                    <div id="topcolor">

                    </div>
                    <div id="bottomcolor">

                    </div>
                </div>
            </div>
            <div id="announcementwrap">
                <div id="datetimewrapper">
                    <h3 id="fittext4">12/12/2014 18:00</h3>
                </div>
                <div id="anpicturewrap">
                    <img src="images/pic.jpg" alt=""/>
                </div>
                <div id="antextwrap">
                    <div id="text">
                        <h4 id="fittext5">sample text</h4>
                    </div>
                </div>
            </div>
        </div>
        <script type="text/javascript">
            $("h1").fitText(1);
            $("#fittext2").fitText(1.2);
            $("#fittext3").fitText(1.2);
            $("#fittext4").fitText(1.2, {minFontSize: '20px', maxFontSize: '30px'});
            $("#fittext5").fitText(1.2);
        </script>
    </body>
</html>

https://github.com/davatron5000/FitText.js

最佳答案

标题的默认边距和您设置的一些边距导致了一些对齐问题。如果您将其中一些切换为填充,并在其中一些 div 上使用 box-sizing:border-box;,它会让样式更容易一些:

div {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

http://www.paulirish.com/2012/box-sizing-border-box-ftw/

在 JS fiddle 示例中,看起来调整文本大小的 Javascript 实际上并没有被调用。当我在 fiddle 中打开 JQuery 然后实际调用元素上的文本调整大小时,它确实可以调整元素的大小。

$(document).ready( function(){
    jQuery("#fittext1").fitText(.2);
    jQuery("#fittext2").fitText(.3);
    jQuery("#fittext3").fitText(.6);
    jQuery("#fittext4").fitText(1, {minFontSize: '20px', maxFontSize: '30px'});
    jQuery("#fittext5").fitText(1.2);
});

编辑:我更新了您的一些 CSS,使其按照您预期的方式工作。我将 normalize 移到了 CSS 的顶部,因为它应该是第一个添加的东西。您可能想在某些框中添加一些空间和东西,但由于我添加了边框框,您只需在百分比大小的元素上填充即可。

http://jsfiddle.net/57tVW/2/

关于javascript - 文本不会填满 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22866758/

相关文章:

javascript - 全局点击事件阻止元素的点击事件

html - DIV 在表格单元格中拉伸(stretch)到高度 100%

html - 页脚菜单未在 Safari 中显示

javascript - 将表单数据保存到序列化数组 Javascript 后重新填充表单

javascript - Mongoose,使用查找选择特定字段

CSS border-radius 方向

c++ - 调整 QMainwindow 大小以适合 Qdockwidget 大小

html - 在同一个列表元素中左右对齐文本

javascript - 用于确认弹出的 AngularJS 指令无法访问父范围

java - Html Form无需提交自动调用Servlet