Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Element position fixed is related to parent instead to the viewport

trying to achieve:

position element in fixed right and top relative to the viewport

what I am doing:

  • set position: fixed; to the element

  • calculate the right and the top related and set it on the element

what happen?

  • element any where is act as i wanted

  • but Element with the same styling (fixed position and right & top) in modal get positioned relative to he's parent (it's happen on bootstrap modal)

code example element style:

.fixed-floater {
  top: 300px;
  right: 151px;
  text-align: left;
  display: block;
  min-width: 180px;
  position: fixed;
  z-index: 999;
  padding: 4px;
}

images: http://s3.postimg.org/u2kraeyzn/modal_error.png

like image 825
Cuzi Avatar asked Feb 11 '23 12:02

Cuzi


2 Answers

what happen (as i understand)

modal container has (from bootstrap) defaults of transform: translate(0, 0);

by the w3 specification :

element with position:fixed are always relative to the initial containing block.

W3 Wiki

Some values of these properties result in the creation of a containing block

and

For elements whose layout is governed by the CSS box model, any value other than none for the transform results in the creation of both a stacking context and a containing block. The object acts as a containing block for fixed positioned descendants. W3 Transform Specification

So by the mentioned above, the Translate transform is setting the modal as "the initial containing block" for the fixed element inside him instead of the body.

like image 162
Cuzi Avatar answered Feb 13 '23 02:02

Cuzi


TL;DR:

Override the specific modal's .modal-dialog with

transform: none;
like image 40
downhand Avatar answered Feb 13 '23 01:02

downhand