目次
vh および vw 単位: JavaScript/jQuery によるクロスブラウザ実装
jQuery プラグイン
使用法
結論
ホームページ ウェブフロントエンド CSSチュートリアル クロスブラウザ環境で vh および vw ユニットを使用するにはどうすればよいですか?

クロスブラウザ環境で vh および vw ユニットを使用するにはどうすればよいですか?

Nov 03, 2024 am 04:39 AM

How Can You Use vh and vw Units in Cross-Browser Environments?

vh および vw 単位: JavaScript/jQuery によるクロスブラウザ実装

CSS3 では、ビューポートのパーセンテージの長さ単位 vh および vw が導入され、レスポンシブ レイアウトのための強力なツールが提供されます。 。ただし、ブラウザは、特にフォント サイズに関して、これらの単位を完全にはサポートしていません。

この制限に対処するために、JavaScript と jQuery は代替ソリューションを提供します。このようなソリューションの 1 つは、ウィンドウのサイズ変更イベントで vh 値と vw 値をピクセルに変換することです。

jQuery プラグイン

次の jQuery プラグインは、この変換タスクに取り組みます。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<code class="javascript">(function( $, window ){

 

  var $win = $(window)

    , _css = $.fn.css;

 

  function viewportToPixel( val ) {

    var percent = val.match(/[\d.]+/)[0] / 100

      , unit = val.match(/[vwh]+/)[0];

    return (unit == 'vh' ? $win.height() : $win.width()) * percent +'px';

  }

 

  function parseProps( props ) {

    var p, prop;

    for ( p in props ) {

      prop = props[ p ];

      if ( /[vwh]$/.test( prop ) ) {

        props[ p ] = viewportToPixel( prop );

      }

    }

    return props;

  }

 

  $.fn.css = function( props ) {

    var self = this

      , originalArguments = arguments

      , update = function() {

          if ( typeof props === 'string' || props instanceof String ) {

            if (originalArguments.length &gt; 1) {

              var argumentsObject = {};

              argumentsObject[originalArguments[0]] = originalArguments[1];

              return _css.call(self, parseProps($.extend({}, argumentsObject)));

            } else {

              return _css.call( self, props );

            }

          } else {

            return _css.call( self, parseProps( $.extend( {}, props ) ) );

          }

        };

    $win.resize( update ).resize();

    return update();

  };

 

}( jQuery, window ));</code>

ログイン後にコピー

使用法

このプラグインを使用すると、次のように CSS で vh および vw ユニットを使用できます:

1

2

3

4

5

<code class="css">div {

   height: 50vh;

   width: 50vw;

   fontSize: 10vw;

}</code>

ログイン後にコピー

結論

vh および vw のネイティブ ブラウザ サポートは引き続き改善されています。 、この JavaScript/jQuery ソリューションは、クロスブラウザーの回避策を提供し、これらのユニットの力をレスポンシブ レイアウトに利用できるようにします。

以上がクロスブラウザ環境で vh および vw ユニットを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WordPressブロックと要素にボックスシャドウを追加します WordPressブロックと要素にボックスシャドウを追加します Mar 09, 2025 pm 12:53 PM

WordPressブロックと要素にボックスシャドウを追加します

Smart Forms Frameworkを使用してJavaScript連絡フォームを作成する Smart Forms Frameworkを使用してJavaScript連絡フォームを作成する Mar 07, 2025 am 11:33 AM

Smart Forms Frameworkを使用してJavaScript連絡フォームを作成する

満足している属性を持つインラインテキストエディターを作成します 満足している属性を持つインラインテキストエディターを作成します Mar 02, 2025 am 09:03 AM

満足している属性を持つインラインテキストエディターを作成します

最初のカスタムSvelteトランジションを作成します 最初のカスタムSvelteトランジションを作成します Mar 15, 2025 am 11:08 AM

最初のカスタムSvelteトランジションを作成します

node.jsとexpressのMulterを使用してファイルアップロードします node.jsとexpressのMulterを使用してファイルアップロードします Mar 02, 2025 am 09:15 AM

node.jsとexpressのMulterを使用してファイルアップロードします

5つの最高のPHPフォームビルダー(および3つの無料スクリプト)を比較する 5つの最高のPHPフォームビルダー(および3つの無料スクリプト)を比較する Mar 04, 2025 am 10:22 AM

5つの最高のPHPフォームビルダー(および3つの無料スクリプト)を比較する

Codecanyon 2025(無料)の最高のCSSアニメーションと効果 Codecanyon 2025(無料)の最高のCSSアニメーションと効果 Mar 01, 2025 am 09:32 AM

Codecanyon 2025(無料)の最高のCSSアニメーションと効果

GraphQLキャッシングの使用 GraphQLキャッシングの使用 Mar 19, 2025 am 09:36 AM

GraphQLキャッシングの使用

See all articles