CSS样式选项按钮?

时间:2011-11-16 10:20:53

标签: css radio-button

我正在某个电子商务网站上为某人工作,并遇到了一些我不确定的事情。产品页面目前有用于选择产品尺寸的单选按钮。之前我有一个下拉菜单。客户需要与here上类似的方形按钮。

我的代码部分目前正在阅读......

<td valign="top" width="910">
<div id="content"><?php echo $content_top; ?>
<h1><?php echo $heading_title; ?></h1>

<div class="right">


 <?php if ($price) { ?>
  <div class="price">
    <?php if (!$special) { ?>
    <?php echo $price; ?>
    <?php } else { ?>
    <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
    <?php } ?>
    <br />

    <?php if ($tax) { ?>

    <?php } ?>
    <?php if ($points) { ?>
    <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span> <br />
    <?php } ?>
    <?php if ($discounts) { ?>
    <br />
    <div class="discount">
      <?php foreach ($discounts as $discount) { ?>
      <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />
      <?php } ?>
    </div>
    <?php } ?>
  </div>





  <?php
$get_meta_desc = "SELECT meta_description
FROM product_description
WHERE product_id = '".$product_id."'";
$get_meta_res = mysql_query($get_meta_desc);
$meta_desc = mysql_fetch_array($get_meta_res, MYSQL_ASSOC);
if ($meta_desc['meta_description']) {
echo "<p id=\"cmmeta-desc\">".$meta_desc['meta_description']."</p>";
}
mysql_free_result($get_meta_res);
?>


  <?php } ?>
  <?php if ($options) { ?>
  <div class="options">



    <?php foreach ($options as $option) { ?>
    <?php if ($option['type'] == 'select') { ?>
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
      <?php if ($option['required']) { ?>
      <span class="required">*</span>
      <?php } ?>
      <b><?php echo $option['name']; ?>:</b><br />
      <select name="option[<?php echo $option['product_option_id']; ?>]">
        <option value=""><?php echo $text_select; ?></option>
        <?php foreach ($option['option_value'] as $option_value) { ?>
        <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php      echo $option_value['name']; ?>
        <?php if ($option_value['price']) { ?>
        (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
        <?php } ?>
        </option>
        <?php } ?>
      </select>
    </div>
    <br />
    <?php } ?>
    <?php if ($option['type'] == 'radio') { ?>
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
      <?php if ($option['required']) { ?>
      <span class="required">*</span>
      <?php } ?>
      <b><?php echo $option['name']; ?>:</b><br />
      <?php foreach ($option['option_value'] as $option_value) { ?>
      <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
      <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
        <?php if ($option_value['price']) { ?>
        (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
        <?php } ?>
      </label>
      <br />
      <?php } ?>
    </div>
    <br />
    <?php } ?>
    <?php if ($option['type'] == 'checkbox') { ?>
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
      <?php if ($option['required']) { ?>
      <span class="required">*</span>
      <?php } ?>
      <b><?php echo $option['name']; ?>:</b><br />
      <?php foreach ($option['option_value'] as $option_value) { ?>
      <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
      <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"> <?php echo $option_value['name']; ?>
        <?php if ($option_value['price']) { ?>
        (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
        <?php } ?>
      </label>
      <br />
      <?php } ?>
    </div>
    <br />
    <?php } ?>
    <?php if ($option['type'] == 'text') { ?>
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
      <?php if ($option['required']) { ?>
      <span class="required">*</span>
      <?php } ?>
      <b><?php echo $option['name']; ?>:</b><br />
      <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" />
    </div>
    <br />
    <?php } ?>
    <?php if ($option['type'] == 'textarea') { ?>
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
      <?php if ($option['required']) { ?>
      <span class="required">*</span>
      <?php } ?>
      <b><?php echo $option['name']; ?>:</b><br />
      <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['option_value']; ?></textarea>
    </div>
    <br />
    <?php } ?>
    <?php if ($option['type'] == 'file') { ?>
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
      <?php if ($option['required']) { ?>
      <span class="required">*</span>
      <?php } ?>
      <b><?php echo $option['name']; ?>:</b><br />
      <a id="button-option-<?php echo $option['product_option_id']; ?>" class="button"><span><?php echo $button_upload; ?></span></a>
      <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" />
    </div>
    <br />
    <?php } ?>
    <?php if ($option['type'] == 'date') { ?>
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
      <?php if ($option['required']) { ?>
      <span class="required">*</span>
      <?php } ?>
      <b><?php echo $option['name']; ?>:</b><br />
      <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="date" />
    </div>
    <br />
    <?php } ?>
    <?php if ($option['type'] == 'datetime') { ?>
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
      <?php if ($option['required']) { ?>
      <span class="required">*</span>
      <?php } ?>
      <b><?php echo $option['name']; ?>:</b><br />
      <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="datetime" />
    </div>
    <br />
    <?php } ?>
    <?php if ($option['type'] == 'time') { ?>
    <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
      <?php if ($option['required']) { ?>
      <span class="required">*</span>
      <?php } ?>
      <b><?php echo $option['name']; ?>:</b><br />
      <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['option_value']; ?>" class="time" />
    </div>

    <?php } ?>
    <?php } ?>
  </div>
  <?php } ?>
  <div class="cart">
    <div><?php echo $text_qty; ?>
      <input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
      <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />
      &nbsp;<a id="button-cart" class="button2"><span>ADD TO BAG</span></a></div>



    <?php if ($minimum > 1) { ?>
    <div class="minimum"><?php echo $text_minimum; ?></div>
    <?php } ?>
  </div>

之前从未真正做过这样的事情......

非常感谢 →

3 个答案:

答案 0 :(得分:0)

这是一个关于样式单选按钮的非常好的教程。

http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/

从那里你可以很容易地得到你的事情:)

希望这会帮助你!

答案 1 :(得分:0)

我认为你指的是'GO'按钮。这是input类型的image元素。这意味着它是一个由图像组成的可点击按钮。因此,为了获得漂亮的方形按钮,您必须创建一个图像,上传它,并在输入标签的src属性中引用它。
这是一个看起来很过时的例子,但很简单直截了当:http://www.echoecho.com/htmlforms14.htm
它还描述了选项。

如果您还没有使用它,也许是一个有用的提示:如果您在某个网站上遇到过想要使用的内容,请使用Firebug for Firefox之类的检查工具来查看它是如何制作的。

修改

产品尺寸按钮实际上不是单选按钮,它们是列表项<li>并使用CSS设置样式。它们代表的值是使用一段javascript注册的。点击提交按钮后会发布此信息。我不知道如果你熟悉javascript和/或正在使用javascript框架,但你的情况是一个很好的利用它。

我使用简单的javascript创建了这个jsfiddle:http://jsfiddle.net/r2K9h/3/
它设置了一个隐藏的input字段,其大小已选中。因此,当您发送表单时,也会提交此值。

答案 2 :(得分:0)

在您关联的网站中,他们使用select元素及其中的选项。然后使用Javascript隐藏它,并使用下拉选项构建链接列表(a),可以轻松设置样式。如果单击其中一个链接,它们将与原始选择元素绑定。这可以通过Javascript轻松实现。

如果您在浏览器中禁用Javascript并查看该网站,您将看到基础表单元素。

不幸的是,单选按钮,复选框和下拉列表等元素无法通过CSS进行样式设置,只能以非常有限的方式进行。大多数解决方案(如@Graeme发布的解决方案,但有thousand others)使用Javascript来隐藏这些元素并使用其行为链接到原始元素的替代元素。

如果你只想使用CSS,那么有一个棘手的CSS3解决方案,但它只适用于现代浏览器(没有IE8或更低版本)。您可以在之前的帖子中看到一个示例:Custom Checkbox