1. 程式人生 > >CSS3 calc實現滾動條出現頁面不跳動

CSS3 calc實現滾動條出現頁面不跳動

當頁面內容動態載入,開始沒有滾動條,內容增多後出現滾動條,這時使用固定寬度居中對齊佈局會向左偏移一個滾動條寬度。解決方法可以給內容全部新增overflow-y:scroll;或者是根據內容用css填充好再補充內容。本文介紹的是calc來計算滾動條寬度,當有滾動條時,內容外部也給它模擬一個滾動條寬度,因而就不會偏移了。

很簡單,只要一行程式碼就搞定了:

.wrap-outer {
    margin-left: calc(100vw - 100%);
}

或者:

.wrap-outer {
    padding-left: calc(100vw - 100%);
}

然後就可以慶祝放鞭炮啦!!

首先,.wrap-outer指的是居中定寬主體的父級,如果沒有,建立一個(使用主體也是可以實現類似效果,不過本著寬度分離原則,不推薦);
然後,calc是css3中的計算,IE10+瀏覽器支援,IE9瀏覽器基本支援(不能用在background-position上);
最後,100vw相對於瀏覽器的window.innerWidth,是瀏覽器的內部寬度,注意,滾動條寬度也計算在內!而100%是可用寬度,是不含滾動條的寬度。
於是,calc(100vw - 100%)就是瀏覽器滾動條的寬度大小(如果有,如果沒有滾動條則是0)!左右都有一個滾動條寬度(或都是0)被佔用,主體內容就可以永遠居中瀏覽器啦,從而沒有任何跳動!

相關推薦

CSS3 calc實現滾動出現頁面跳動

當頁面內容動態載入,開始沒有滾動條,內容增多後出現滾動條,這時使用固定寬度居中對齊佈局會向左偏移一個滾動條寬度。解決方法可以給內容全部新增overflow-y:scroll;或者是根據內容用css填充好再補充內容。本文介紹的是calc來計算滾動條寬度,當有滾

vw讓overflow:auto頁面滾動出現時跳動

一、水平居中佈局與滾動條跳動的千年難題 當前web屆,絕大多數的頁面間佈局都是水平居中佈局,主體定個寬度,然後margin: 0 auto的節奏~ 例如,婦女之友大淘寶的首頁: 然而,這種佈局有一個存在一個影響使用者體驗的隱患。應該都知道,現代瀏覽器滾動條預設是ov

CSS vw讓overflow:auto頁面滾動出現時跳動

最開始的需求是出現一個彈出框,彈出框下面部分不會滾動,但是發現一個問題,就是不滾動和可以滾動的區別是滾動條,而滾動條佔據了寬度,設定100%就會使內容各種跳,一開始用了各種方法,js用過,但是不好,雖然我是點選事件,但是能用css解決的就不用js。後來用了各種絕對定位蓋住滾

使用layui彈出層的心得,解決使用layer iframe 沒有出現滾動 導致頁面顯示

問題描述:在做後臺的時候想要實現這樣一個功能,點選彈出一個視窗,視窗是下拉選擇框,給使用者選擇。用到了layui,但是卻發現,彈窗雖然固定了高寬,但是裡面的下拉框,在顯示的時候卻被彈窗擋住了,導致資訊顯示不全,也沒滾動條。 layer.open({

阻止因出現滾動導致頁面抖動

現在大多數頁面都是採用主體內容水平居中佈局<body> <div></div> </body>div{ width:1200px; margin:0 auto; }但是,這種佈局存在一個問題。現在的瀏覽器滾動條預設是

CSS3自定義滾動樣式 -webkit-scrollbar

play 偽類 thumb area 沒有 :link 現在 自定義滾動條 box ::-webkit-scrollbar {/*隱藏滾輪*/display: none;} 前言 webkit支持擁有overflow屬性的區域,列表框,下拉菜單,textarea的滾動條自定

CSS3自定義滾動樣式 之 -webkit-scrollbar

selection 單獨 窗口 請求 方塊 利用 源碼 bsp 進行 有沒有覺得瀏覽器自帶的原始滾動條很不美觀,同時也有看到很多網站的自定義滾動條顯得高端,就連chrome32.0開發板都拋棄了原始的滾動條,美觀多了。那webkit瀏覽器是如何自定義滾動條的呢? 前言

jQuery中獲取文檔的高度、可視區域高度以及滾動頁面頂部的高度

doc 支持 document span ros p s margin window 窗口 在寫頁面的時候,經常會碰到這樣的情況,就是要獲取文檔的高度、可視區域高度或者滾動條距頁面頂部的高度等情況。 但我總是有些愛搞混淆了,這裏還是簡單做個筆記吧,這裏只限於使用jQuer

css3自定義滾動

enter ott char overflow htm har ado solid lang <!doctype html> <html lang="en"> <head> <meta charset="UTF-8">

QML之實現滾動

Scrolbar.qml import QtQuick 2.7 import QtQuick.Controls 2.0 // 滾動條 Rectangle { id: scrollbar; opacity: 0 // 繫結到ListView元件 property

offsetTop 實現滾動內內容定位

js程式碼: var _parent_top = document.getElementsByClassName('task-exe-phase-container')[0].offsetTop;var _phase_top = document.getElementsByClassName('phase_

vue中實現滾動緩慢向上移動的效果

.vue //用於判斷按鈕何時顯示 <div class="btn-top" v-if="scrollHeight > alarmHeight"> <el-button type="info" icon="el-icon-arrow

網頁重新整理或者重新載入後滾動的位置

<script type="text/javascript">  window.onbeforeunload = function(){      var scrollPos;          if (typeof window.pageYOffset != 

javaScript實現滾動事件

//滾動事件 function myScroll() { var i = document.body.scrollTop; var top = document.getElementById("

HTML5 移動端 實現滾動

實現滾動條 相關程式碼: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title>

jQuery實現滾動動態載入

//滾動條載入底部自動載入 $(function(){ //滑鼠滾動事件 $(window).scroll(function(){ console.log("滾動條到頂部的垂直高度:" + $(window).scrollTop() ); conso

IE瀏覽器滾動遮住頁面內容怎麼處理?

IE瀏覽器的滾動條呈現半透明樣式,並且會自動隱藏和顯示,但是會遮住正常頁面顯示的一部分內容,就會影響我們頁面內容的展示,這是,我們只需要給body標籤新增css屬性:“-ms-overflow-sty

css3 自定義滾動

::-webkit-scrollbar { width: 14px; height: 14px; } ::-webkit-scrollbar-track, ::-webkit-scrollbar-thumb { border-radius: 999px;

HTML中如何在div中實現滾動

overflow:scroll; /*任何時候都強制顯示滾動條*/ overflow:auto; /*需要的時候會出現滾動條*/ overflow-x:auto; /*控制X方向的滾動條*/ overflow-y:auto; /*控制Y方向的滾動條*/ 受ove

css3做一個滾動

先上效果圖: html程式碼很簡單: <div> <span class="wrap"> <span class="wrap">週