響應式網站-全屏banner響應的2中方法 - 被吃掉的banner


 

通常來講,

設計師們喜歡把banner設計成全屏(1920px或以上)

主題內容控制在一定的范圍內一般在1200px左右

這樣的設計即可以在寬屏上的表現很好、也能向下兼容一些小屏幕的設備;

如下圖(所說的分辨率是實際的展示尺寸的寬度、請勿較真)

 

 

那么問題來了;

如果當分辨率小於1200、 拿bootstrap來說、 規定的幾個響應尺寸為  小於768px  小於996px  小於1200px 大於1200px這4種尺寸

這時候該如何處理尺寸,比如當前瀏覽器寬度為1000px時,我們會發現主視覺區域被吃掉了一小部分,再更小的分辨率下吃掉的更多;當然這不是我們想要的結果

 

 

方法1:

<img src="768banner.jpg" class="visible-xs" />
<img src="996banner.jpg" class="visible-sm" />
<img src="banner.jpg" class="visible-md visible-lg" />

優點:好理解、而且可以針對不同的分辨率下設置不同的顯示效果;

缺點:如果不用js控制、會一次性加載3張圖片、這對於移動設備來說可能是個災難;

 

方法2(推薦):

 

利用calc計算寬度: 比如圖片寬度為 1920px、主視覺區域為1200px 當前分辨率是1000px

公式為:圖像寬度/主視覺寬度 * 100%

1920px/1000px*100%;

但是,calc的乘法和除法又這樣的限制

*乘法,乘數中至少要有一個是 <number> 類型的

/除法,被除數(/右面的數)必須是 <number> 類型的

--引用自MDN

 

索性就直接算出來 1920px/1000px*100%   =  1.6*100%;

這樣的設置會使主視覺區域跟隨着窗口寬度來變化、始終等比縮放!

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1 , user-scalable=no">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Cache-Control" content="no-siteapp"/>
    <meta name="apple-mobile-web-app-capable" content="yes">
    <title>Document</title>
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <!--[if lt IE 9]>
	    <script src="scripts/html5shiv.min.js"></script>
	    <script src="scripts/respond.min.js"></script>
    <![endif]-->
</head>
<body>
	<style>

		ul,li{margin:0;padding:0;}
		ul{}
		.banner{position: relative;overflow:hidden;}
		.banner img{ 
			position: relative;
    		left: 50%;
    		transform: translate3d(-50%, 0, 0);
       		width: calc(1.6*100%);
       	}
		
	</style>

	<div class="banner">

		<ul>
			<li>
				<a href="#">
					<img src="banner.jpg" />	
				</a>
			</li>
		</ul>


	</div>

</body>
</html>

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM