2016-05-04 5 views
1

私はノックアウトと一緒にスタイリングのためにw3.cssを試しています。フッタを使用すると、ページの下部にあるコンテンツがカバーされます。フッタはw3.cssを使用しているときにコンテンツをカバーします

私のコンテンツの下部にボタンがあります。ページのサイズが変更されるか、または十分に小さい場合、フッターがボタンをカバーします。

:fixedの位置を持っている.w3-top, .w3-bottom要素codepen、または

function setting(color) { 
 
    this.color = ko.observable(color); 
 
    this.colorClassName = ko.computed(function() { 
 
    return "w3-hover-" + this.color(); 
 
    }, this); 
 
} 
 

 
function myInput() { 
 
    this.data = ko.observable(""); 
 
    this.nameValid = ko.computed(function() { 
 
    return !(this.data() == null || this.data().length == 0); 
 
    }, this); 
 
    this.error = ko.computed(function() { 
 
    //if (this.data() == null || this.data().length == 0) 
 
    if (this.nameValid() == false) { 
 
     return "Enter name"; 
 
    } else { 
 
     return ""; 
 
    } 
 
    }, this); 
 

 
    this.display = ko.computed(function() { 
 
    if (this.nameValid() == false) { 
 
     return "block"; 
 
    } else { 
 
     return "none"; 
 
    } 
 
    }, this); 
 

 
    this.ageData = ko.observable(); 
 
    this.ageValid = ko.computed(function() { 
 
    var age = this.ageData() + ""; 
 

 
    var patt = new RegExp(/^[0-9]+$/g); /// ^-from start, $-to end, [0-9] - 0 to 9 numbers only 
 
    var res = patt.test(age); 
 
    if (isNaN(age) == true || res == false) { 
 
     return false; 
 
    } else { 
 
     return true; 
 
    } 
 
    }, this); 
 
    this.ageError = ko.computed(function() { 
 
    if (this.ageValid() == false) { 
 
     return "Enter a valid age"; 
 
    } else { 
 
     return ""; 
 
    } 
 

 
    }, this); 
 
    this.ageDisplay = ko.computed(function() { 
 
    if (this.ageValid() == true) { 
 
     return "none"; 
 
    } else { 
 
     return "block"; 
 
    } 
 
    }, this); 
 

 
    this.phone = ko.observable('http://digitalbush.com/projects/masked-input-plugin/'); 
 

 
    this.allValid = ko.computed(function() { 
 
    return this.ageValid() && this.nameValid(); 
 
    }, this); 
 
} 
 

 
function myModel() { 
 
    this.name = "Ice-Cream"; 
 
    this.items = [{ 
 
    name: "Chocolate", 
 
    price: 10 
 
    }, { 
 
    name: "Vanilla", 
 
    price: 12 
 
    }]; 
 
    this.style = new setting('pale-green'); 
 
    this.input = new myInput(); 
 

 
    this.changeColor = function() { 
 
    if (this.style.color().indexOf('blue') == -1) { 
 
     this.style.color('pale-blue'); 
 
    } else { 
 
     this.style.color('pale-green'); 
 
    } 
 
    }; 
 
} 
 
ko.applyBindings(new myModel());
<script type='text/javascript' src='http://ajax.aspnetcdn.com/ajax/knockout/knockout-3.3.0.js'></script> 
 
<link href="http://www.w3schools.com/lib/w3.css" rel="stylesheet" type="text/css"> 
 

 
<body class="w3-content w3-pale-blue" style="max-width:100%"> 
 
    <header class="w3-container w3-pale-green w3-border"> 
 
    <h1>Hello</h1> 
 
    </header> 
 
    <div class="w3-container w3-pale-yellow w3-border w3-padding-hor-16 w3-content" style="max-width:100%"> 
 
    <a href="http://www.w3schools.com/w3css">W3.CSS</a> 
 
    <p> 
 
     The item is <span data-bind="text: name"></span> today. 
 
     <br />Available flavours are: 
 
    </p> 
 
    <div class="w3-container"> 
 
     <ul data-bind="foreach: items" class="w3-ul w3-left w3-border w3-border-red"> 
 
     <li class="w3-ul w3-hoverable w3-border-red " data-bind="css: $parent.style.colorClassName()"> 
 
      <span data-bind="text: name"></span> is $<span data-bind="text:price" /> 
 
     </li> 
 
     </ul> 
 
    </div> 
 

 
    <label class="w3-label w3-text-blue w3-xlarge">Name</label> 
 
    <input class="w3-input w3-border" type="text" data-bind="textInput: input.data"> 
 
    <label class="w3-label w3-text-red w3-large" data-bind="text: input.error(), style: { display: input.display()}"></label> 
 
    <br /> 
 
    <label class="w3-label w3-text-blue w3-xlarge">Age</label> 
 
    <input class="w3-input w3-border" type="text" data-bind="textInput: input.ageData"> 
 
    <label class="w3-label w3-text-red w3-large" data-bind="text: input.ageError(), style: { display: input.ageDisplay()}"></label> 
 
    <br /> 
 
    <label class="w3-label w3-text-blue w3-xlarge">Phone</label> 
 
    <input class="w3-input w3-border" type="text" data-bind="textInput: input.phone"> 
 
    <!--<label class="w3-label w3-text-red w3-large" data-bind="text: input.phoneError(), style: { display: input.phoneDisplay()}"></label>--> 
 
    <br /> 
 
    <button class="w3-btn w3-border w3-border-teal w3-round w3-teal" data-bind="click: changeColor, enable: input.allValid()">Test</button> 
 
    </div> 
 

 
    <footer class="w3-light-grey w3-bottom"> 
 
    <div class="w3-container"> 
 
     <p>This is my footer</p> 
 
    </div> 
 
    </footer>

+0

代わりにスクロール 私は何らかの種類の行レイアウトを使用する必要があるかもしれません – Quintonn

答えて

1

私のソリューションは、私のフッターと同じ内容で別のdiv要素を追加し、それを不可視にすることでした。これにより、実際のフッターの後ろのスペースが埋まります。 iは、上記iが更新codepenソリューションを示す

<div class="w3-container" style="opacity:0"> 
    <p>This is my footer</p> 
</div> 

以下を追加するコードで

+0

私のためにそれを釘付け。 –

0

以下のコードを参照してくださいので、彼らは常にページに固執するつもりです。

これをスタイルシートから削除するか、独自のものを追加してください。

など。

.w3-bottom { 
position: static; 
} 
+0

これは私のフッタをページの最後に移動させるのではなく、ページの最後の項目として配置します。 私のコードでは、スピードではないw3-bottomをcifyingします。 – Quintonn

0

あなたのフッターのクラスは、W3-下で、あなたは相対的にそれを変更する必要があるのでdefautによって、その位置は、固定されている:

.w3-bottom { 
    position: relative !important;   
} 
+0

これは、私のフッターをページの最後に移動させるのではなく、そのページの最後の項目として配置します。 私のコードでは、w3-bottomを指定しないのと同じです。 – Quintonn

0

別の方法を配置することができ "その属性をよりよく制御するために、 "div"内の "button"を削除し、フッターとボトムクラスから "div"を削除します。次のようなものがあります。

<div class="w3-container w3-padding-bottom-32"> 
    <button class="w3-btn w3-border w3-border-teal w3-round w3-teal" data-bind="click: changeColor, enable: input.allValid()">Test</button> 
    </div> 

    <footer class="w3-container w3-light-grey"> 
     <p>This is my footer</p> 
    </footer> 

あなたが役に立ったら教えてください。

は親切に、エドウィン

0

Sticky footer example from the bootstrapのスタイルを使用してください。 しかし、この方法は一つの欠点があります:フッターが高さ:(固定されてい

例:私は解決策はフッターの上に行かないために、他のコンテナ要素を伝えるにあるだろうと思い

/* Sticky footer styles 
 
-------------------------------------------------- */ 
 
html { 
 
    position: relative; 
 
    min-height: 100%; 
 
} 
 
body { 
 
    /* Margin bottom by footer height */ 
 
    margin-bottom: 80px; 
 
} 
 
.footer { 
 
    position: absolute; 
 
    bottom: 0; 
 
    width: 100%; 
 
    overflow: hidden; 
 
    /* Set the fixed height of the footer here */ 
 
    height: 80px; 
 
    background-color: #f5f5f5; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<title>W3.CSS</title> 
 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
 
<link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css"> 
 
<body> 
 

 
<div class="w3-container w3-teal"> 
 
    <h1>Header</h1> 
 
</div> 
 

 
<div class="w3-container"> 
 
    <p>The w3-container class can be used to display headers.</p> 
 
</div> 
 

 
<div class="footer w3-container w3-teal"> 
 
    <h5>Footer</h5> 
 
    <p>Footer information goes here</p> 
 
</div> 
 

 
</body> 
 
</html>

関連する問題