![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
【Web製作】widthでcssやjavascriptを切換えたいです。
マルチデバイス対応のWebSiteを製作しようと思うのですが、
widthによって、cssやjavascriptを切り替えたいのですがどのようにすれば良いでしょうか。
横幅が【959px以下】の場合は【style-1.css】と【base1.js】
横幅が【960px以上】の場合は【style-2.css】と【base2.js】を適応させたいです。
htmlに
<link href="style-1.css" rel="stylesheet" type="text/css" media="only screen and (max-width: 959px)">
<link href="style-2.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 960px)">
<link href="style-1.css" rel="stylesheet" type="text/css" media="only screen and (max-device-width: 959px)">
<link href="style-1.css" rel="stylesheet" type="text/css" media="only screen and (orientation: portrait) ">
<link href="style-2.css" rel="stylesheet" type="text/css" media="only screen and (orientation: landscape) ">
と記述してもうまく動作しません。(確認は【PC】【iPhone】【iPad】です。)
私の解釈ですと、
1.<link href="style-1.css" rel="stylesheet" type="text/css" media="only screen and (max-width: 959px)">
↑PCの場合、ウィンドウサイズが959px以下の場合【style-1.css】
2.<link href="style-2.css" rel="stylesheet" type="text/css" media="only screen and (min-width: 960px)">
↑PCの場合、ウィンドウサイズが960px以上の場合【style-2.css】
3.<link href="style-1.css" rel="stylesheet" type="text/css" media="only screen and (max-device-width: 959px)">
↑PC以外で、画面表示サイズが最大959px以下のデバイスの場合【style-1.css】
4.<link href="style-1.css" rel="stylesheet" type="text/css" media="only screen and (orientation: portrait) ">
↑PC以外で、画面表示サイズが最大959px以下ではないデバイスのポートレートモードの場合【style-1.css】
5.<link href="style-2.css" rel="stylesheet" type="text/css" media="only screen and (orientation: landscape) ">
↑PC以外で、画面表示サイズが最大959px以下ではないデバイスのランドスケープモードの場合【style-2.css】
と、解釈し指定しているのですがうまく動作しません。
そしてもう一つなのですが、
widthやポートレートモード、ランドスケープモードを判別しjsを切り替える事は可能でしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
viewportでwidth=media-widthを指定しておけば、<link>タグのmedia属性で切り替えられるかもしれませんが、未検証です。
https://developer.apple.com/library/safari/#docu …
----------
JavaScriptでポートレート、ランドスケープを判断するには、
if( window.orientation%180 ){
//ランドスケープ
}else {
//ポートレート
}
です。
window.onorientationchange=function(){};
で、切り替わった時に実行する処理を指定できます。
JavaScriptを併用して良いのなら、
disabledを切り替えればスタイルの変更が簡単にできると思います。
この回答への補足
talooさんのヒントを得て
下記の記述で
【PCのwindowサイズ変更時とマルチデバイスで向き変更時にjsとcssを切替】
ができました。
プログラムは苦手なので記述が悪いと思いますが、動きました!
ありがとうございました!
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>PCのwindowサイズ変更時とマルチデバイスで向き変更時にjsとcssを切替</title>
<meta name="viewport" content="" id="myStyleTwo">
<link rel="stylesheet" href="style-1.css" id="myStyle">
<script type="text/javascript" src="../../jquery/jquery-1.7.1.js"></script>
<script>
$(function(){
$(window).bind("orientationchange resize load",function(){
if( 960 >$(window).width() || Math.abs(window.orientation) === 0){
$("#myStyle").attr("href","style-1.css");//縦向きの場合の命令
$("#testA").html("縦"+$(window).width());//縦向きの場合の命令
document.getElementById('myStyleTwo').content = "width = 600,initial-scale=1";
}else if(Math.abs(window.orientation) === 90){
$("#myStyle").attr("href","style-2.css");//横向きの場合の命令
$("#testA").html("横"+$(window).width());//横向きの場合の命令
document.getElementById('myStyleTwo').content = "width = 1000,initial-scale=1";
}else{
$("#myStyle").attr("href","style-2.css");//横向きの場合の命令
$("#testA").html("横"+$(window).width());//横向きの場合の命令
document.getElementById('myStyleTwo').content = "width = 1000,initial-scale=1";
}
})
})
</script>
</head>
<body>
<div id="testA">BOXA</div>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- Ruby htmlの記述で link rel=stylesheet href=ress.cssの指定をする l 1 2023/04/02 21:15
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS PrettierのHTMLの記述変更 linkタグ 1 2022/06/23 04:06
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の条件のHTML要素を一括で...
-
JavascriptでXSSの脆弱性への対...
-
iframe内のスクリプトを親から3...
-
jqueryを使ったスムーススクロ...
-
CSSでreadonlyの機能はあり...
-
時間帯によってclass名を変更し...
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
CloseとDisposeの違い
-
Excelシート上のマクロを登録し...
-
VBAでループ内で使う変数名を可...
-
「PC Helpsoft Driver Updated...
-
Do~Loopした回数をカウントしたい
-
DoEventsがやはり分からない
-
UPS警告音を止めたい
-
【Excel】特定の文字を含むセル...
-
メルカリのメルカードで買い物...
-
EXCEL VBA マクロ 実行する度に...
-
VBA エンターキーでイベントに...
-
エクセルVBAで、MsgBox やInput...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
確認ダイアログを次からは表示...
-
CSSでreadonlyの機能はあり...
-
formのsubmitを押すとモーダル...
-
Q&A掲示板の入力フォームに文字...
-
JavascriptのHTMLクラス表示に...
-
3重のクォーテーション
-
JavaScriptのinnerHTMLの挙動に...
-
特定の条件のHTML要素を一括で...
-
クリックすると、色が変わるよ...
-
jqueryを使ったスムーススクロ...
-
折りたたみを全て開いて別ペー...
-
jQuery 画面サイズにスライド画...
-
2回目以降のページロード時には...
-
Bootstrap Javascriptでモーダル
-
jQueryのSlickで矢印アイコンが...
-
javascriptとcssでフォントサイ...
-
JavaScriptのdiv.style属性の変...
-
フォームで「パスワード(確認...
-
macかwinか判別しスタイルシー...
-
javascript htmlの追記について
おすすめ情報