How to style <select>s using DropKick

Wdd Logo.
August 26, 2013
How to style <select>s using DropKick.

thumbnailWhen it comes to styling webpages, nothing's as tricky as forms. And when it comes to styling forms — almost — nothing's as tricky as the <select> input.

We can style a <select> with CSS, but there are big limitations on how much we can achieve with CSS alone. Often, the only viable option is styling via JavaScript, and as a form of progressive enhancement it's not something we need to shy away from.

In this article we'll be using DropKick to create out dropdown. What dropkick does is transform the <select> list into a fully customizable HTML dropdown and when one option is selected the corresponding select value will be updates as part of your form. OK, let's get started then…

Setting up our <select>

The first thing we need to do is set up a <select>, we'll create one for the business days in the week:

<select id='mySelect'>
<option value='mon'>Monday</option>
<option value='tue'>Tuesday</option>
<option value='wed'>Wednesday</option>
<option value='thu'>Thursday</option>
<option value='fri'>Friday</option>
</select>

Calling DropKick

Once we've set up our <select> we need to load three files into our document: the JavaScript DropKick file, the CSS, and of course jQuery. We should load the CSS in the head and JavaScripts at the foot of the page. With that done, all we need to do to activate the plugin and create our fully customizable dropdowns is to call DropKick, like so:

$('#mySelect').dropkick();

By doing so we transform our HTML into this:

<div class="dk_container dk_theme_default" id="dk_container_undefined">
<a class="dk_toggle">
<span class="dk_label">Thursday</span>
</a>
<div class="dk_options">
<ul class="dk_options_inner">
<li class="">
<a data-dk-dropdown-value="mon">Monday</a>
</li>
<li class="">
<a data-dk-dropdown-value="tue">Tuesday</a>
</li>
<li class="">
<a data-dk-dropdown-value="wed">Wednesday</a>
</li>
<li class="dk_option_current">
<a data-dk-dropdown-value="thu">Thursday</a>
</li>
<li class="">
<a data-dk-dropdown-value="fri">Friday</a>
</li>
</ul>
</div>
</div>

As you can see, DropKick has transformed our <select> into something we can be confident of styling with CSS. Furthermore, our values have been inserted in the new HTML5 data attributes (with the name data-dk-dropdown-value).

We can now style our dropdown with CSS, or use one the DropKick's themes if we prefer; at the time of writing there are three themes available, the default, dark gloss and light gloss. But most people will want to use their own styles that match their project's needs.

Extending DropKick

Extending DropKick is a simple process. For example, if we wanted to detect when a change is made to the dropdown, we can add the change event handler, like so:

$('select').dropkick({
change: function (value) {
console.log('Option selected: ' + value);
}
});

Final thoughts

I'm sure there are a thousand ways to style a select menu without the use of jQuery, but the ones that use just CSS are fighting a losing battle against the browser's defaults. The simplicity of this plugin and the tremendous flexibility it offers and the progressive enhancement approach that it takes means DropKick is an excellent solution.

Have you used DropKick in a project? Do you have a preferred method of styling <select>s? Let us know in the comments.

WDD Staff

WDD staff are proud to be able to bring you this daily blog about web design and development. If there's something you think we should be talking about let us know @DesignerDepot.

Read Next

15 Best New Fonts, July 2024

Welcome to our monthly roundup of the best fonts we’ve found online in the last four weeks. This month, there are fewer…

20 Best New Websites, July 2024

Welcome to July’s round up of websites to inspire you. This month’s collection ranges from the most stripped-back…

Top 7 WordPress Plugins for 2024: Enhance Your Site's Performance

WordPress is a hands-down favorite of website designers and developers. Renowned for its flexibility and ease of use,…

Exciting New Tools for Designers, July 2024

Welcome to this July’s collection of tools, gathered from around the web over the past month. We hope you’ll find…

3 Essential Design Trends, July 2024

Add some summer sizzle to your design projects with trendy website elements. Learn what's trending and how to use these…

15 Best New Fonts, June 2024

Welcome to our roundup of the best new fonts we’ve found online in the last month. This month, there are notably fewer…

20 Best New Websites, June 2024

Arranging content in an easily accessible way is the backbone of any user-friendly website. A good website will present…

Exciting New Tools for Designers, June 2024

In this month’s roundup of the best tools for web designers and developers, we’ll explore a range of new and noteworthy…

3 Essential Design Trends, June 2024

Summer is off to a fun start with some highly dramatic website design trends showing up in projects. Let's dive in!

15 Best New Fonts, May 2024

In this month’s edition, there are lots of historically-inspired typefaces, more of the growing trend for French…

How to Reduce The Carbon Footprint of Your Website

On average, a web page produces 4.61 grams of CO2 for every page view; for whole sites, that amounts to hundreds of KG…

20 Best New Websites, May 2024

Welcome to May’s compilation of the best sites on the web. This month we’re focused on color for younger humans,…