Search and Top Navigation
#7657 closed bug (notabug)
Opened August 19, 2011 02:57PM UTC
Closed August 22, 2011 11:41AM UTC
.tabs() assigns unnessesery .ui_widget class
Reported by: | asdqwezx | Owned by: | asdqwezx |
---|---|---|---|
Priority: | minor | Milestone: | 1.9.0 |
Component: | ui.tabs | Version: | 1.8.15 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
After initializing tabs with ".tabs()" call <input> fields which inside <div>s representing tabs got ".ui_widget" class assigned to them. I believe this is wrong because:
1) it has not anything with creating tabs
2) it brokes styles of <input>s
".ui_widget input" from jquery-ui.css overrides initial styles of <input>s
PS current workarounds are ugly:
1) use !important in initial css styles
or
2) use removeClass() after .tabs() call
Attachments (0)
Change History (3)
Changed August 19, 2011 03:17PM UTC by comment:1
owner: | → asdqwezx |
---|---|
status: | new → pending |
Changed August 21, 2011 03:44PM UTC by comment:2
status: | pending → new |
---|
Slightly altered example from official site:
test.html:
<html> <head> <link rel="stylesheet" type="text/css" href="custom.css" /> <link rel="stylesheet" type="text/css" href="jquery-ui.css" /> <SCRIPT type='text/javascript' src='jquery-min.js'></SCRIPT> <SCRIPT type='text/javascript' src='jquery-ui.min.js'></SCRIPT> </head> <body> <div id="tabs"> <ul> <li><a href="#tabs-1">Nunc tincidunt</a></li> <li><a href="#tabs-2">Proin dolor</a></li> <li><a href="#tabs-3">Aenean lacinia</a></li> </ul> <div id="tabs-1"> <input type="text" value="TEST TEST TEST" class="custom_css"/> </div> <div id="tabs-2"> <p>Morbi tincidunt</p> </div> <div id="tabs-3"> <p>Mauris eleifend est et turpis.</p> </div> </div> <SCRIPT type="text/javascript"> $(document).ready(function() { $( "#tabs" ).tabs(); }); </script> </body> </html>
custom.css:
.custom_css { font-size: 48px; }
Font size in input field is not nearly 48 pixels.
This happens because .tabs() adds "ui-widget" class to <div id="tabs">.
Then <div id="tabs-N"> divs inherits "ui-widget" class.
And rule ".ui-widget input" from jquery-ui.css overrides "custom_css".
PS another ugly workaround is to set style directly by "style" attribute
Changed August 22, 2011 11:41AM UTC by comment:3
resolution: | → invalid |
---|---|
status: | new → closed |
After initializing tabs with ".tabs()" call <input> fields which inside <div>s representing tabs got ".ui_widget" class assigned to them.
The <input> fields do not get the "ui-widget" class assigned to them, though they will get some styles because they're inside a div that has the "ui-widget" class.
The ui-widget class being added to the tabs element is neither a bug nor is it unnecessary. Your .custom_css selector is simply less specific than the ".ui-widget input" one in the jquery-ui.css. That's why it's being overridden. Change it to
.ui-widget .custom_css { font-size: 48px; }
or
.ui-tabs .custom_css { font-size: 48px; }
or
#tabs .custom_css { font-size: 48px; }
Example: http://jsbin.com/iniqem/edit
Please provide a reduced test case showing this problem.