Also for the buttons:
Now normal buttons and buttons created by html code directly are being rendered correctly but drupal 7 does not support a button type other than <input type="submit"> in it's core. And what good would it do if there was not any support for the basic elements of drupal.
Drupal uses the function l() to generate links and by providing attributes like class="btn btn-xs btn-default" you can create pseudo buttons. Now, also for these buttons, almost all cases are being rendered correctly except from the one above.
When an <a> element is being given the btn-<size> class (where <size> is xs, sm or lg) along with btn-default the btn-default's border radius and font size is overriding the default value while on hover. That means that the size of the button changes when you hover over it. In order to go around, edit the style.css file and find the
.btn-default:hover, a.btn-default:hover
{
and delete from there the border-radius and the font-size (and actually all the values that you will find that are being wrongly overrided there.
For the developers I have also found another workaround that seems to work better but the above is just simpler to use temporarily.
The issue here comes in two reasons but in one source. The source is the CSS selectivity. To fix (don't know if there are bugs) the above these are the two things that worked for me:
1) The above section that is quoted is defined after the following 3 definitions:
.btn-lg, .btn-group-lg > .btn, .btn-lg:hover, .btn-group-lg > .btn:hover {
.btn-sm, .btn-group-sm > .btn, .btn-sm:hover, .btn-group-sm > .btn:hover {
.btn-xs, .btn-group-xs > .btn, .btn-xs:hover, .btn-group-xs > .btn:hover{
That means that no matter what, whenever btn-default and btn-<size> are together, the btn-default properties are going to override the rest (all the rest button definitions are defined in a correct order) so this should be reversed. The first definition I quoted should be moved a bit above, before the :hover of the rest definitions mentioned above.
2) The selectivity also pays attention to differences like .btn and a.btn. So even if you do number 1 it will still not work (at least it didn't work for me). The second thing that is needed to be done is add one more thing to the above three definitions quoted and be changed as shown below:
.btn-lg, .btn-group-lg > .btn, .btn-lg:hover, .btn-group-lg > .btn:hover, a.btn-lg, a.btn.lg:hover{
.btn-sm, .btn-group-sm > .btn, .btn-sm:hover, .btn-group-sm > .btn:hover, a.btn-sm, a.btn.sm:hover{
.btn-xs, .btn-group-xs > .btn, .btn-xs:hover, .btn-group-xs > .btn:hover, a.btn-xs, a.btn.xs:hover{
At the btn-default definition, you include an "a.btn-default:hover" so the same thing must apply to the rest of definitions in order to maintain equal selectivity and be left to the sequence of the definition in the CSS file.
Sorry for the annoyingly long answers.