How to style <select>s using DropKick

Default avatar.
August 26, 2013
How to style &lt;select&gt;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, May 2023

The choices you make when selecting a typeface have more impact on your design than almost any other decision, so it’s …

10+ Best Tools & Resources for Web Designers and Agencies (2023 updated)

Having the ability to envision a tastefully designed website (i.e., the role creativity plays) is important. But being …

20 Best New Websites, May 2023

This month, there are tons of great new agency websites to get excited about. 3D animated prisms are a popular theme, a…

How to Find the Right White Label Website Builder for Your Agency

Web design agencies face a lot of obstacles in closing the deal with new clients. One of the most common ones is the ar…

Exciting New Tools For Designers, May 2023

There are hundreds of new tools for designers and developers released each month. We sift through them all to bring you…

3 Essential Design Trends, May 2023

All three of the website design trends here mimic something bigger going on in the tech space, from a desire to have mo…

10 Best AI Tools for Web Designers (2023)

It’s time to stop worrying if AI is going to take your job and instead start using AI to expand the services you can of…

10 Best Marketing Agency Websites (Examples, Inspo, and Templates!)

Marketers are skilled in developing strategies, producing visual assets, writing text with high impact, and optimizing …

15 Best New Fonts, April 2023

Fonts are a designer’s best friend. They add personality to our designs and enable fine typography to elevate the quali…

20 Best New Websites, April 2023

In April’s edition, there’s a whole heap of large-scale, and even full-screen, video. Drone footage is back with a veng…

Exciting New Tools For Designers, April 2023

The AI revolution is having a huge impact on the types of products that are hitting the market, with almost every app b…

3 Essential Design Trends, March 2023

One thing that we often think about design trends is that they are probably good to make a list. That’s not always true…