Template:Inputbox/sandbox

From Wikipedia, the free encyclopedia

This is the template sandbox page for Template:Inputbox.
See also the companion subpage for test cases.
Demo text on template page only. 
[edit] Template documentation

Contents

[edit] Usage

{{Inputbox}} will display a short line of text as if being the content of a basic input box. One use is to emulate the display of the edit summary box.

Code  
{{Inputbox|/* Heading */ my summary}}
Gives 
/* Heading */ my summary

[edit] Notes

  • The box can be indented using standard prefixes such as ":", "*", or ":*".
  • The box uses the appearance set for Wikipedia's "messagebox" (monobook: black text on white background, 80% the width of the screen), with nowrap.
  • If you use a very long sentence, the text will continue to the right of the box and a horizontal scrollbar for the whole page appears. Can be changed with options, but with the scroll option the appearance is still different from the real edit summary box (which allows scrolling but does not show a bar).
  • As with other templates, you will need to use "1=" if your text includes an equal sign, or enclose all or part of your text in <NOWIKI>...</NOWIKI>.
  • Please do not subst: this template.

[edit] Options

Default values are usually inherited from class=messagebox.

overflow
How the text will overflow if longer than the box. Can be "hidden" (the box keeps it width, end of text is hidden), "scroll" (the box gets an underside horizontal scrollbar, end of text is available using it), or "visible" (the box will become as wide as needed to display a long text [works in Internet Explorer and Opera, reportedly does not work in Firefox]). (Defaults to "visible") – See also examples.
width
Width of the box, can be "50%", "20em", "40ex", etc. (Defaults to "80%") – Relative values (such as %, em, and ex) are recommended over device-dependent ones (pixels).
style
Allows any additional semicolon-separated CSS style in the format "name:value; name:value; etc." (Defaults to empty) – "width" and "overflow" can be specified here when using this freeform string.

[edit] Examples

Code 
{{Inputbox|width=20%|This is gonna be too large for me, ouch! ouch! ouch!}}
Gives 
This is gonna be too large for me, ouch! ouch! ouch!

This box isn't 20% wide but grows to make a long text visible (as per default overflow=visible).


Code  
{{Inputbox|width=20%|overflow=hidden|This is gonna be too large for me, ouch! ouch! ouch!}}
Gives 
This is gonna be too large for me, ouch! ouch! ouch!

This box sticks to 20% width and hides the end of a too long text.


Code  
{{Inputbox|width=20%|overflow=scroll|This is gonna be too large for me, ouch! ouch! ouch!}}
Gives 
This is gonna be too large for me, ouch! ouch! ouch!

This box sticks to 20% width but adds an underside scrollbar to make a too long text available.


Code 
{{Inputbox|style=background-color:yellow; color:red; width:40%;|My eyes! My eyes!}}
Gives
My eyes! My eyes!

This box uses a freeform style to specify anything that can be done in CSS, including the width.


Full example with hidden table

Proper security require that password fields obscure their contents.

Login:
Komusou
Password:
********

[edit] Technical

Since an actual <FORM><INPUT> isn't allowed by wikicode, the appearance has to be emulated. The CSS code is designed to avoid hardcoded colors and sizes and should be modified with care, with respect to the following concerns:

  • The CLASS="messagebox" inherits the colors and width of the user's skin for a message box. So, even if the color scheme is white text on black background, our emulated box will render accordingly (instead of using hardcoded black text on white background that would stick out).
  • The "border:0.15em;" uses a non-absolute border width that will render approximatively the same on any screen (as opposed to a hardcoded width in pixels).
  • The "inset" tweaks the inherited "messagebox" appearance to give a 3D inset box approximation, as rendered by each browser for this value.
  • The "padding:0.1em;" is required to avoid the text being stuck to the border in browsers that strictly respect the padding value, and use again a relative em value instead of pixels. (For instance in Opera, "padding:0" would do what it says).
  • The "margin:0.1em;" is intended to avoid several boxes stuck one to the other, using a relative em value instead of pixels.

The result isn't a perfect 3D input box, but should provide decent results for everyone, regardless of browser, color settings, and resolution.