I was wondering; is it possible to style the css3 resize property?
div { resize: both; overflow: auto; }
I want a horizontal resize, and would like a vertical bar, rather than the little thingamagig in the corner in the default. See images. In short, can I make this:
Into something like this:
...and if this is not possible through css, any other ideas? I would like to keep things as lightweight as possible.
The resize property defines if (and how) an element is resizable by the user. Note: The resize property does not apply to inline elements or to block elements where overflow="visible". So, make sure that overflow is set to "scroll", "auto", or "hidden".
The resize CSS property sets whether an element is resizable, and if so, in which directions.
We can resize the image by specifying the width and height of an image. A common solution is to use the max-width: 100%; and height: auto; so that large images do not exceed the width of their container. The max-width and max-height properties of CSS works better, but they are not supported in many browsers.
The resize property in CSS is used to resize the element according to user requirement. It does not apply to inline elements or to block elements where overflow is visible. none: The user is not able to resize the element. It is a default value.
Obs: This answer is for WebKit only, couldn't find for other browsers nor testing with their -
names worked.
Considering you have an element with the following CSS:
.styled { resize:both; overflow:auto; background:orange; /* just for looks */ }
If you add webkit's specific pseudo-selector ::-webkit-resizer
, you can style the handle:
::-webkit-resizer { border: 2px solid yellow; background: blue; box-shadow: 0 0 2px 5px red; outline: 2px dashed green; /*size does not work*/ display:block; width: 150px !important; height: 150px !important; }
Visual:
http://jsfiddle.net/RaphaelDDL/ryphs/1/
I've tested with ::-moz-resizer
on FF22, didn't worked. so yeah, you are stuck into making the javascript version, mimicking StackOverflow's textarea handle.
When styling shadow dom pseudo selectors, do NOT stack them into a single selector ::-webkit-resizer, ::-moz-resizer { /*css*/}
because will invalidate the entire selector.
I would like to propose my solution
https://jsfiddle.net/tomoje/x96rL2sv/26/
It works on every browser, type of device, can be operated with mouse and finger (touch) and doesn't use any image etc.
The trick is to give to user a handle and to expand the handle to whole working area, to avoid mouse/touch to step out from the handle area during moving (it can happen when the javascript function will slow down due to some computer occupation or else)
<div class="cSuwakT" id="idSuwakKontenerGalka"></div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With