ホームページ ウェブフロントエンド CSSチュートリアル 複数のスタイル選択とスタイルのリアルタイム切り替えを実現する方法_体験交流

複数のスタイル選択とスタイルのリアルタイム切り替えを実現する方法_体験交流

May 16, 2018 pm 02:42 PM

web サイトを作成するとき、web サイトには複数のスタイルがあることを望みます。ユーザーは自分の好みに応じてさまざまなスタイルを選択できます。そのようなスタイルは、レイアウトの変更、色の違い、または特別にカスタマイズされたスタイルです。異なるユーザーグループ。
複数のスタイルの選択とスタイルのリアルタイム切り替えを実現するにはどうすればよいでしょうか?
実はieではこの機能をサポートしておらず、ブラウザに任せることになりますが、firefoxではこの機能をサポートしています。
2 つの css セットがあり、2 つの異なるファイル a.css と b.css に囲まれているとします。次に、

と の間に次の 2 行の xhtml コードを追加します。

1

2

<link rel="stylesheet" type="text/css" title="主题a" href="a.css?7.1.34" /> 

<link rel="alternate stylesheet" type="text/css" title="主题b" href="b.css?7.1.34" />

ログイン後にコピー

次に、firefox でこのページを開き、メニュー バーで view-> ページ スタイルを選択します。 「テーマa」と「テーマb」をリアルタイムに表示し、選択することができます。
もう 1 つの方法は、asp、php、jsp などの動的プログラムを使用することです。この利点は、直接的、効率的、優れた互換性、およびユーザーの選択を記憶できることです。ユーザーの選択内容は cookie に記録するか、データベースに直接書き込むことができ、ユーザーが再度アクセスすると、前回のアクセスで選択したスタイルが直接呼び出されます。ここでは特定の制作については詳しく説明しませんが、当社の web サイト www.52css.com に注目してください。この分野のコンテンツは随時公開されます。
今、どのような方法を使用する必要がありますか?主流のブラウザieではブラウザに選択させる方法がサポートされていないため、プログラムスクリプトで実装するにはどうすればよいでしょうか? web ページが静的な場合、データベースは存在しません。
それを実現するには、javascript を使用することしか選択できません。次のコードを見てみましょう:

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

44

45

46

47

48

49

50

51

52

53

54

55

56

57

function setactivestylesheet(title) { 

var i, a, main; 

for(i=0; (a = document.getelementsbytagname("link")[i]); i++) { 

if(a.getattribute("rel").indexof("style") != -1 && a.getattribute("title")) { 

a.disabled = true; 

if(a.getattribute("title") == title) a.disabled = false; 

function getactivestylesheet() { 

var i, a; 

for(i=0; (a = document.getelementsbytagname("link")[i]); i++) { 

if(a.getattribute("rel").indexof("style") != -1 && a.getattribute("title") && !a.disabled) return a.getattribute("title"); 

return null; 

function getpreferredstylesheet() { 

var i, a; 

for(i=0; (a = document.getelementsbytagname("link")[i]); i++) { 

if(a.getattribute("rel").indexof("style") != -1 

&& a.getattribute("rel").indexof("alt") == -1 

&& a.getattribute("title"

return a.getattribute("title"); 

return null; 

function createcookie(name,value,days) { 

if (days) { 

var date new date(); 

date.settime(date.gettime()+(days*24*60*60*1000)); 

var expires = "; expires="+date.togmtstring(); 

else expires = ""

documents.cookie = name+"="+value+expires+"; path=/"

function readcookie(name) { 

var nameeq = name + "="

var ca = documents.cookie.split(';'); 

for(var i=0;i < ca.length;i++) { 

var c = ca[i]; 

while (c.charat(0)==' ') c = c.substring(1,c.length); 

if (c.indexof(nameeq) == 0) return c.substring(nameeq.length,c.length); 

return null; 

window.onload = function(e) { 

var cookie = readcookie("style"); 

var title = cookie ? cookie : getpreferredstylesheet(); 

setactivestylesheet(title); 

window.onunload = function(e) { 

var title = getactivestylesheet(); 

createcookie("style", title, 365); 

var cookie = readcookie("style"); 

var title = cookie ? cookie : getpreferredstylesheet(); 

setactivestylesheet(title);

ログイン後にコピー

上記のコードは、複数スタイルの選択とリアルタイムのスタイル切り替えを実装する javascript スクリプトです。上記のコードを js ファイルとして保存し、必要なページに表示します。直接引用:

1

<script type="text/javascript" src="cssturn.js?7.1.34"></script>

ログイン後にコピー

もちろん、上記のコードをページ内に直接記述することもできます。
3 つのスタイルがあり、1 つは他の 2 つのスタイルのデフォルトになります。これら 3 つの css ファイルをページ ファイルに導入します:

1

2

3

<link rel="stylesheet" type="text/css" href="css.css?7.1.34" /> 

<link rel="stylesheet" type="text/css" href="aaa.css?7.1.34" title="aaa" /> 

<link rel="stylesheet" type="text/css" href="bbb.css?7.1.34" title="bbb" />

ログイン後にコピー

さて、ページ内のスタイルを切り替えるためのリンクを追加できます:

1

2

3

<a href="#" onclick="setactivestylesheet('',1); return false;">默认样式-白色</a> 

<a href="#" onclick="setactivestylesheet('aaa',1); return false;">样式一-蓝色</a> 

<a href="#" onclick="setactivestylesheet('bbb',1); return false;">样式二-橙色</a>

ログイン後にコピー

さてこれで完了です。上記の結果をテストして、その効果を見てみましょう。

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

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a rel="nofollow" href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>"

<html xmlns="<a rel="nofollow" href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>"> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 

<title>阿Q家园</title> 

<link rel="stylesheet"  type="text/CSS" href="<a rel="nofollow" href="http://www.52css.com/attachments/month_0701/r2007128164252.css?7.1.34" target="_blank">http://www.52css.com/attachments/month_0701/r2007128164252.css</a>"  /> 

<link rel="stylesheet" type="text/CSS" href="<a rel="nofollow" href="http://www.52css.com/attachments/month_0701/c2007128164223.css?7.1.34" target="_blank">http://www.52css.com/attachments/month_0701/c2007128164223.css</a>" title="aaa" /> 

<link rel="stylesheet" type="text/CSS" href="<a rel="nofollow" href="http://www.52css.com/attachments/month_0701/h2007128164239.css?7.1.34" target="_blank">http://www.52css.com/attachments/month_0701/h2007128164239.css</a>" title="bbb" /> 

<script type="text/javascript"

function setActiveStyleSheet(title) { 

  var i, a, main; 

  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { 

    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { 

      a.disabled = true; 

      if(a.getAttribute("title") == title) a.disabled = false; 

    

  

 

function getActiveStyleSheet() { 

  var i, a; 

  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { 

    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title"); 

  

  return null; 

 

function getPreferredStyleSheet() { 

  var i, a; 

  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { 

    if(a.getAttribute("rel").indexOf("style") != -1 

       && a.getAttribute("rel").indexOf("alt") == -1 

       && a.getAttribute("title"

       return a.getAttribute("title"); 

  

  return null; 

 

function createCookie(name,value,days) { 

  if (days) { 

    var date new Date(); 

    date.setTime(date.getTime()+(days*24*60*60*1000)); 

    var expires = "; expires="+date.toGMTString(); 

  

  else expires = ""

  documents.cookie = name+"="+value+expires+"; path=/"

 

function readCookie(name) { 

  var nameEQ = name + "="

  var ca = documents.cookie.split(';'); 

  for(var i=0;i < ca.length;i++) { 

    var c = ca[i]; 

    while (c.charAt(0)==' ') c = c.substring(1,c.length); 

    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 

  

  return null; 

 

window.onload = function(e) { 

  var cookie = readCookie("style"); 

  var title = cookie ? cookie : getPreferredStyleSheet(); 

  setActiveStyleSheet(title); 

 

window.onunload = function(e) { 

  var title = getActiveStyleSheet(); 

  createCookie("style", title, 365); 

 

var cookie = readCookie("style"); 

var title = cookie ? cookie : getPreferredStyleSheet(); 

setActiveStyleSheet(title); 

</script> 

</head> 

<body> 

<a href="#" onclick="setActiveStyleSheet('',1); return false;">默认样式-白色</a> 

<a href="#" onclick="setActiveStyleSheet('aaa',1); return false;">样式一-蓝色</a> 

<a href="#" onclick="setActiveStyleSheet('bbb',1); return false;">样式二-橙色</a> 

<p></p> 

</body> 

</html>

ログイン後にコピー


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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

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

最近GraphQLの作業を開始した場合、またはその長所と短所をレビューした場合、「GraphQLがキャッシュをサポートしていない」または

ショー、Don&#039; t Tell ショー、Don&#039; t Tell Mar 16, 2025 am 11:49 AM

あなたのウェブサイトのコンテンツプレゼンテーションの設計にどれくらいの時間に費やしますか?新しいブログ投稿を書いたり、新しいページを作成したりするとき、あなたは考えていますか

Redwood.jsと動物相を使用してイーサリアムアプリを構築します Redwood.jsと動物相を使用してイーサリアムアプリを構築します Mar 28, 2025 am 09:18 AM

最近のビットコインの価格が20k $ $ USDを超えており、最近30Kを破ったので、イーサリアムを作成するために深く掘り下げる価値があると思いました

Eleventyで独自のBragdocを作成します Eleventyで独自のBragdocを作成します Mar 18, 2025 am 11:23 AM

開発者としての段階に関係なく、私たちが完了したタスクは、大小を問わず、個人的および専門的な成長に大きな影響を与えます。

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

それは&#039; Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

CI/CDで少し CI/CDで少し Apr 02, 2025 pm 06:21 PM

「ウェブサイト」は「モバイルアプリ」よりも適していると言いますが、Max Lynchからのこのフレーミングが好きです。

特異性について話すために(x、x、x、x)を使用しましょう(x、x、x、x) 特異性について話すために(x、x、x、x)を使用しましょう(x、x、x、x) Mar 24, 2025 am 10:37 AM

先日、エリック・マイヤーとおしゃべりをしていたので、形成期のエリック・マイヤーの話を思い出しました。 CSS特異性に関するブログ投稿を書きました

ブラウザから有効なCSSプロパティ値を取得できますか? ブラウザから有効なCSSプロパティ値を取得できますか? Apr 02, 2025 pm 06:17 PM

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

See all articles