2016-09-05 3 views
0

私は現在、いくつかの友人とウェブサイトプロジェクトに取り組んでおり、(SOの助けを借りて)ホームページの画像コンテナを作成しましたが、ほとんどの画面サイズ(1920x1080,1366x768など16:9のように、まだタブレットやスマートフォンについてはあまり気にしていない)に適応してください。CSS画像コンテナをさまざまなブラウザサイズに適用する方法

ここで説明したソリューション(Automatically resize images with browser size using CSS)を使用しようとしましたが、ブラウザに基づいていない画像を実際に変えてしまい、コンテナ内で縮小してしまいました。

css get height of screen resolutionも試しましたが、奇妙な結果も得ました。

* { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
body { 
 
    background: #ccc; 
 
    font-family: arial, verdana, tahoma; 
 
} 
 
/*Time to apply widths for accordian to work 
 
    Width of image = 1840px 
 
    total images = 3 
 
    so width of hovered image = 1840px 
 
    width of un-hovered image = 40px - you can set this to anything 
 
    so total container width = 1840 + 40*2 = 1920px; 
 
    default width = 1920/3 = 640px; 
 
    */ 
 

 
.accordian { 
 
    width: 1920px; 
 
    height: 1000px; 
 
    overflow: hidden; 
 
    /*Time for some styling*/ 
 
    margin: 0px auto; 
 
    box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.35); 
 
    -webkit-box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.35); 
 
    -moz-box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.35); 
 
} 
 
/*A small hack to prevent flickering on some browsers*/ 
 

 
.accordian ul { 
 
    width: 2000px; 
 
    /*This will give ample space to the last item to move 
 
    \t instead of falling down/flickering during hovers.*/ 
 
} 
 
.accordian li { 
 
    position: relative; 
 
    display: block; 
 
    width: 640px; 
 
    float: left; 
 
    border-left: 1px solid #888; 
 
    box-shadow: 0 0 25px 10px rgba(0, 0, 0, 0.5); 
 
    -webkit-box-shadow: 0 0 25px 10px rgba(0, 0, 0, 0.5); 
 
    -moz-box-shadow: 0 0 25px 10px rgba(0, 0, 0, 0.5); 
 
    /*Transitions to give animation effect*/ 
 
    transition: all 0.5s; 
 
    -webkit-transition: all 0.5s; 
 
    -moz-transition: all 0.5s; 
 
    /*If you hover on the images now you should be able to 
 
    \t see the basic accordian*/ 
 
} 
 
/*Reduce with of un-hovered elements*/ 
 

 
.accordian ul:hover li { 
 
    width: 40px; 
 
} 
 
/*Lets apply hover effects now*/ 
 

 
/*The LI hover style should override the UL hover style*/ 
 

 
.accordian ul li:hover { 
 
    width: 1840px; 
 
} 
 
.accordian li img { 
 
    display: block; 
 
} 
 
/*Image title styles*/ 
 

 
.image_title { 
 
    background: rgba(0, 0, 0, 0.5); 
 
    position: absolute; 
 
    left: 0; 
 
    bottom: 0; 
 
    width: 1840px; 
 
} 
 
.image_title a { 
 
    display: block; 
 
    color: #fff; 
 
    text-decoration: none; 
 
    padding: 60px; 
 
    font-size: 30px; 
 
}
<!doctype html5> 
 

 
<head> 
 
    <title>CdS Home</title> 
 
    <link rel='stylesheet' href='index.css' /> 
 
</head> 
 
<div class="accordian"> 
 
    <ul> 
 
    <li> 
 
     <div class="image_title"> 
 
     <a href="#">Event 1</a> 
 
     </div> 
 
     <a href="#"> 
 
     <img src="https://images.duckduckgo.com/iu/?u=http%3A%2F%2Fwww.wallpaperup.com%2Fuploads%2Fwallpapers%2F2015%2F01%2F30%2F606369%2F5510b472cf9126e305bb941e8ec8d9e8.jpg&f=1" /> 
 
     </a> 
 
    </li> 
 
    <li> 
 
     <div class="image_title"> 
 
     <a href="#">Event 2</a> 
 
     </div> 
 
     <a href="#"> 
 
     <img src="https://images.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.betaseries.com%2Fimages%2Ffonds%2Foriginal%2F9296_1415901083.jpg&f=1" /> 
 
     </a> 
 
    </li> 
 
    <li> 
 
     <div class="image_title"> 
 
     <a href="#">Event 3</a> 
 
     </div> 
 
     <a href="#"> 
 
     <img src="https://images.duckduckgo.com/iu/?u=http%3A%2F%2Fwww.wallpaperup.com%2Fuploads%2Fwallpapers%2F2015%2F01%2F30%2F606369%2F5510b472cf9126e305bb941e8ec8d9e8.jpg&f=1" /> 
 
     </a> 
 
    </li> 
 
    </ul> 
 
</div> 
 

 

 
And here is the CSS file /*Now the styles*/

そしてここでのコードが動作しているJSFiddleリンクです - https://jsfiddle.net/qvpy07vd/

それが最も一般的な画面サイズに適応するようにどのように我々はコードを適応させる必要がありますか?異なる画面ごとに異なるコードを実行する必要がありますか?

+1

あなたは、彼らがうまく拡張できるようなものが流体にするために試してみたい、応答性の設計に見てください。ある種のブレークポイントで特定のものを隠すために、メディアクエリを調べることもできます。私は現在、さまざまなデザイン幅の間で反発する適応アプローチ(電話とタブレットには全く異なるテンプレート)を使用しています。基本的に、絶対的な測定値(ピクセル)を相対的な値(すなわちパーセンテージ)に変更する必要があります。 – Pete

+0

@ペテ私もそれを見てきましたが、何らかの理由で答えが下落しました。私は何%wthパーセンテージを行うことができますが表示されます:)ありがとう。 – Iocust

+0

あなたは 'html'を最初に修正します:) – MoolsBytheway

答えて

1

ここではjsFiddleですが、画面サイズを調整できるよう別のファイルで試してみることをお勧めします。

* { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 

 
.accordian ul{ width:auto;} 
 
.accordian {  
 
width: auto; 
 
overflow:hidden; 
 
    height: 100%; 
 
    margin: 0px auto; 
 
    box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.35); 
 
    -webkit-box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.35); 
 
    -moz-box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.35); 
 
} 
 

 

 
.accordian li { 
 

 
    width: calc(95%/3); 
 
position: relative; 
 
    display: inline-block; 
 
\t height:100%; 
 
    border-left: 1px solid #888; 
 
    transition: all 0.5s ease 0s; 
 

 
    box-shadow: 0 0 25px 10px rgba(0, 0, 0, 0.5); 
 
    -webkit-box-shadow: 0 0 25px 10px rgba(0, 0, 0, 0.5); 
 
    -moz-box-shadow: 0 0 25px 10px rgba(0, 0, 0, 0.5); 
 
    transition: all 0.5s; 
 
    -webkit-transition: all 0.5s; 
 
    -moz-transition: all 0.5s; 
 
\t see the basic accordian*/ 
 
} 
 

 

 
.accordian ul:hover li{ 
 
    width:10%; 
 
} 
 
.accordian ul li:hover { 
 

 
    width:calc(95% - (10%*3)); 
 
    background-color:rgba(0,0,0,0.5); 
 
} 
 

 
.accordian li img { 
 
    display: block; 
 
    width:auto; 
 
    height:100%; 
 
} 
 

 

 
.image_title { 
 
    background: rgba(0, 0, 0, 0.5); 
 
    position: absolute; 
 
    left: 0; 
 
    bottom: 0; 
 
    width: 1840px; 
 
} 
 
.image_title a { 
 
    display: block; 
 
    color: #fff; 
 
    text-decoration: none; 
 
    padding: 1%; 
 
    font-size: 30px; 
 
}
<div class="accordian"> 
 

 
    <ul> 
 
    <li> 
 
     <div class="image_title"> 
 
     <a href="#">Event 1</a> 
 
     </div> 
 
     <a href="#"> 
 
     <img src="https://images.duckduckgo.com/iu/?u=http%3A%2F%2Fwww.wallpaperup.com%2Fuploads%2Fwallpapers%2F2015%2F01%2F30%2F606369%2F5510b472cf9126e305bb941e8ec8d9e8.jpg&f=1" /> 
 
     </a> 
 
    </li> 
 
    <li> 
 
     <div class="image_title"> 
 
     <a href="#">Event 2</a> 
 
     </div> 
 
     <a href="#"> 
 
     <img src="https://images.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.betaseries.com%2Fimages%2Ffonds%2Foriginal%2F9296_1415901083.jpg&f=1" /> 
 
     </a> 
 
    </li> 
 
    <li> 
 
     <div class="image_title"> 
 
     <a href="#">Event 3</a> 
 
     </div> 
 
     <a href="#"> 
 
     <img src="https://images.duckduckgo.com/iu/?u=http%3A%2F%2Fwww.wallpaperup.com%2Fuploads%2Fwallpapers%2F2015%2F01%2F30%2F606369%2F5510b472cf9126e305bb941e8ec8d9e8.jpg&f=1" /> 
 
     </a> 
 
    </li> 
 
    </ul> 
 
</div>

+0

ありがとうございます!私たちはいくつかのことをテストし、ここで使ったものとほとんど同じものを使用しました。それは不思議に動作します:) – Iocust

+0

^_ ^あなたを歓迎します – MoolsBytheway

関連する問題