diff options
author | Phil Ruffwind <rf@rufflewind.com> | 2015-06-12 12:59:24 -0400 |
---|---|---|
committer | Phil Ruffwind <rf@rufflewind.com> | 2015-06-12 13:07:25 -0400 |
commit | a476b251e363b3b0ed30c75cf72a19fc275d6440 (patch) | |
tree | 8367c4b4606ef9ddc020893a7efe900235d807e4 /haddock-api | |
parent | f48474f640387dca4b42182c1ac78ba30865742d (diff) |
Fix alignment of Source links in instance table in Firefox
Due to a Firefox bug [1], a combination of 'whitespace: nowrap' on the
parent element with 'float: right' on the inner element can cause the
floated element to be displaced downwards for no apparent reason.
To work around this, the left side is wrapped in its own <span> and set
to 'float: left'. As a precautionary measure to prevent the parent
element from collapsing entirely, we also add the classic "clearfix"
hack. The latter is not strictly needed but it helps prevent bugs if
the layout is altered again in the future.
Fixes #384.
Remark: line 159 of src/Haddock/Backends/Xhtml/Layout.hs was indented to
prevent confusion over the operator precedence of (<+>) vs (<<).
[1]: https://bugzilla.mozilla.org/show_bug.cgi?id=488725
Diffstat (limited to 'haddock-api')
-rw-r--r-- | haddock-api/resources/html/Ocean.std-theme/ocean.css | 13 | ||||
-rw-r--r-- | haddock-api/src/Haddock/Backends/Xhtml/Layout.hs | 5 |
2 files changed, 16 insertions, 2 deletions
diff --git a/haddock-api/resources/html/Ocean.std-theme/ocean.css b/haddock-api/resources/html/Ocean.std-theme/ocean.css index ef652a21..1110b407 100644 --- a/haddock-api/resources/html/Ocean.std-theme/ocean.css +++ b/haddock-api/resources/html/Ocean.std-theme/ocean.css @@ -416,6 +416,14 @@ div#style-menu-holder { margin-top: 0.8em; } +.clearfix:after { + clear: both; + content: " "; + display: block; + height: 0; + visibility: hidden; +} + .subs dl { margin: 0; } @@ -455,6 +463,11 @@ div#style-menu-holder { margin-left: 1em; } +/* Workaround for bug in Firefox (issue #384) */ +.inst-left { + float: left; +} + .top p.src { border-top: 1px solid #ccc; } diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs index e686d648..914a7a7e 100644 --- a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs +++ b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs @@ -154,8 +154,9 @@ subTableSrc _ _ _ [] = Nothing subTableSrc qual lnks splice decls = Just $ table << aboves (concatMap subRow decls) where subRow ((decl, mdoc, subs),L loc dn) = - (td ! [theclass "src"] << decl - <+> linkHtml loc dn + (td ! [theclass "src clearfix"] << + (thespan ! [theclass "inst-left"] << decl) + <+> linkHtml loc dn <-> docElement td << fmap (docToHtml Nothing qual) mdoc ) |