Change css font-family for separate options in select tag

后端 未结 7 1981
傲寒
傲寒 2020-12-02 00:05

I don\'t know if this is possible, and if not, if someone can throw out optional ideas, but I\'m attempting to display a drop down of different fonts (specifically, font\'s

相关标签:
7条回答
  • 2020-12-02 00:17

    You should wrap each option tag in an optgroup tag and then style that as:

    <select>
    
      <optgroup style="font-family:arial">
        <option>Arial</option>
      </optgroup>
    
      <optgroup style="font-family:verdana">
        <option>veranda</option>
      </optgroup>
    
      <optgroup style="font-family:other">
        <option>other</option>
      </optgroup>
    
    </select>

    0 讨论(0)
  • 2020-12-02 00:18

    All options mentioned above didnt display thing correct on OSX Safari. I managed to get things correct by using bootstrap:

    <!DOCTYPE html>
        <html lang="nl">
        <head>
        <meta charset="utf-8" />
        <title>font test</title>
        <meta name="generator" content="BBEdit 10.5" />
        <link rel="stylesheet" type="text/css" href="yourpaththere/css/bootstrap.min.css" async />
        </head>
        <body>
        <style>
        @font-face {font-family: edwardian;src:local("edwardian"),url('yourpathhere/font/edwardian.TTF');font-weight: normal;}
        .edwardian{font-family: edwardian; font-size: 30px;}
    
        .arial{font-family: arial;}
        .times{font-family: times;}
        .verdana{font-family: verdana;}
        .helvetica{font-family: helvetica;}
        </style>
        <div id="fontdropdown1" class="dropdown" style="width: 300px;">
        <button class="btn btn-default dropdown-toggle" type="button" id="menu1" data-toggle="dropdown">Kies een lettertype
        <span class="caret"></span></button>
        <ul class="dropdown-menu" role="menu" aria-labelledby="menu1">
        <li role="presentation"><a role="menuitem" class="arial">Arial</a></li>
        <li role="presentation" class="divider"></li>
        <li role="presentation"><a role="menuitem" class="times">Times</a></li>
        <li role="presentation"><a role="menuitem" class="verdana">Verdana</a></li>
        <li role="presentation"><a role="menuitem" class="helvetica">Helvetica</a></li>
        <li role="presentation"><a role="menuitem" class="edwardian">Edwardian</a></li>
        </ul>
        </div>
        <!-- test font dropdown -->
        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 
        <script type="text/javascript" src="yourpathhere/js/jquery-1.11.3.min.js"></script>
        <script type="text/javascript" src="yourpathhere/js/bootstrap.js"></script>
        </body>
        </html>
    
    0 讨论(0)
  • 2020-12-02 00:21

    Maybe you can use javascript? Can you try this ?

    <script>
    myObj = document.getElementById("tahoma");
    myObj.style.font = "Tahoma";
    myObj.style.color = "red";
    
    // Change anything else that you like!
    </script>
    
    <option id="tahoma .....>
    
    0 讨论(0)
  • 2020-12-02 00:36

    I used a hackish-style method to do it.

    Because I needed to style the select tag and wanted to customize a couple more things, I used the Stylish Select plugin for jQuery and attached the font-family css attribute to the parent element (which was a list tag).

    That worked with little code and was cross-browser compatible.

    0 讨论(0)
  • 2020-12-02 00:37

    Give the font name to option value. Then you can set them all with jquery.

    Here is an example:

    You can add new font easily like this:

    <option value="myFontName">My Font Name</option>
    

    $("#selectfont").each(function(){
      $(this).children("option").each(function(){
        $(this).css("fontFamily",this.value);
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    <select id="selectfont">
    <option value="tangerine">Tangerine</option>
    <option value="tahoma">Tahoma</option>
    <option value="times new roman">Times New Roman</option>
    </select>

    0 讨论(0)
  • 2020-12-02 00:39

    You cannot set the font of the <option> tag but you could create a list with specific styles (as you would expect)

    Here's everything I've been trying:

    $("select.js option:eq(0), ul li:eq(0)").css("fontFamily", "tangerine");
    $("select.js option:eq(1), ul li:eq(1)").css("fontFamily", "tahoma");
    $("select.js option:eq(2), ul li:eq(2)").css("fontFamily", "times new roman");
    h1 {
      font-size: 1.2em;
      margin-top: 10px;
      color: #777;
    }
    .tangerine {
      font-family: tangerine;
    }
    .tahoma {
      font-family: tahoma;
    }
    .timesnewroman {
      font-family: times new roman;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <h1>Set with jQuery</h2>
    <select id="js">
        <option>Tangerine</option>
        <option>Tahoma</option>
        <option>Times New Roman</option>
    </select>
    <div>&nbsp;</div>
    <h1>Set with CSS</h2>
    <select id="css">
        <option class="tangerine">Tangerine</option>
        <option class="tahoma">Tahoma</option>
        <option class="timesnewroman">Times New Roman</option>
    </select>
    <div>&nbsp;</div>
    <h1>List</h2>
    <ul>
        <li>Tangerine</li>
        <li>Tahoma</li>
        <li>Times New Roman</li>
    </ul>

    0 讨论(0)
提交回复
热议问题