that's not where i want that!

114
Jorge Rimblas @rimblas enkitec.com

Upload: jorge-rimblas

Post on 25-Jan-2015

163 views

Category:

Software


2 download

DESCRIPTION

You're creating Oracle APEX applications already, but you wish your screens would look better. Moving regions around, changing their size, width, placing items and buttons it's all frustrating and painful. In this session you'll learn how to position your elements and better implement the vision you have for your applications. We'll go into details of the attributes provided by APEX to make this happen as well as learn some HTML and CSS that will allow you to personalize your applications. Then if you need to move to the next level attend my "Implementing Custom Themes and Templates" presentation. For the live interactive presentation visit: http://slides.com/rimblas/thats-not-where-i-want-that This presentation was originally used at ODTUG KScope13

TRANSCRIPT

JorgeRimblas@rimblas

enkitec.com

enkitec.com@enkitec

WeareanOracleconsultingpartnerfocusedonthe .

PlatinumLevelPartner

.TheHandsOnOracleExperts.

OracleApplicationDevelopmentOracleDatabaseAdministrationLab-basedEducationBusinessIntelligenceTechnologyStabilizationOngoingManagedServicesforOracleSystems

anecdotes,notasinglestory

howdoigetmorefromapex

MobileappHow-ToBleedingedgetechniques

SecretHandshakeResponsiveDesignTutorial?

ItemsThegridRegionsButtonsCSS

SomemoreCSSQ&A

MartinD'SouzaMon6/24@11:30am

ChristianRokittaWed6/26@8:30am

ChristianRokittaThu6/27@8:30am

DimitriGielisThu6/27@9:45am

Fieldsinone"column"AboutthesamelengthWedohaveagrid:

tablediv

SQL>descempNameType--------------------------EMPNONUMBERENAMEVARCHAR2(10)JOBVARCHAR2(9)MGRNUMBERHIREDATEDATESALNUMBERCOMMNUMBERDEPTNONUMBER

MaintainEMPMaintainEMP

Ename ADAMS

Job CLERK

Mgr 7698

Hiredate 12-JAN-83

Sal 1100

Comm 1

Deptno 20

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

APEX4.1andbefore

APEX4.2andbeyond

MaintainEMPMaintainEMP

Employee ADAMS Job CLERK

Mgr BLAKE

HireDate 12-JAN-83

Salary 1100 Commision 1

Dept RESEARCH

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

tableforformelementscellforlabelcellforitemcellforitembuttons

widthbasedonelements

:table,tr,td

:colspanandrowspan

Inaworldofresponsivedesignsanddivlayoutstheymaybeobsolete(forsomeuses)

However,probablyALLyourapplicationsbuildbefore4.1usethem

<table><tr><td>R1C1</td><td>R1C2</td><td>R1C3</td></tr><tr>...R2...</tr><tr>...R3...</tr></table>

R1C1 R1C2 R1C3R2C1 R2C2 R2C3R3C1 R3C2 R3C3

<tableborder="1"><tr><td>R1C1</td><td>R1C2</td><td>R1C3</td></tr><tr>...R2...</tr><tr>...R3...</tr></table>

R1C1 R1C2 R1C3R2C1 R2C2 R2C3R3C1 R3C2 R3C3

<tableborder="1"><tr><td>R1C1</td><tdcolspan="2">R1C2</td><td>R1C3</td></tr><tr>...R2...</tr><tr>...R3...</tr></table>

R1C1 R1C2 R1C3R2C1 R2C2 R2C3R3C1 R3C2 R3C3

<tableborder="1"><tr><td>R1C1</td><tdcolspan="2">R1C2</td></tr><tr>...R2...</tr><tr>...R3...</tr></table>

R1C1 R1C2R2C1 R2C2 R2C3R3C1 R3C2 R3C3

<tableborder="1"><tr><td>R1C1</td><tdcolspan="2">R1C2</td></tr><tr><tdrowspan="2">R2C1</td><td>R2C2</td><td>R2C3</td><tr>...R3...</tr></table>

R1C1 R1C2R2C1 R2C2 R2C3

R3C1 R3C2 R3C3

<tableborder="1"><tr><td>R1C1</td><tdcolspan="2">R1C2</td></tr><tr><tdrowspan="2">R2C1</td><td>R2C2</td><td>R2C3</td><tr>...R3...</tr></table>

R1C1 R1C2R2C1 R2C2 R2C3

R3C1 R3C2 R3C3

<tableborder="1"><tr><td>R1C1</td><td>R1C2</td><td>R1C3</td></tr><tr><td>R2C1</td><td>Thisisalongvalue</td><td>R2C3</td></tr><tr>...R3...</tr></table>

R1C1 R1C2 R1C3R2C1 Thisisalongvalue R2C3R3C1 R3C2 R3C3

SQL>altertableempaddnotesvarchar2(2000);

Tablealtered.

MaintainEMPMaintainEMP

Employee ADAMS Job CLERK

Mgr BLAKE

HireDate 12-JAN-83

Salary 1100 Commision 1

Dept RESEARCH

Notes

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

<tableborder="1"><tr><td>R1C1</td><td>R1C2</td><td>R1C3</td></tr></table><tableborder="1"><tr><td>R2C1</td><td>Thisisalongvalue</td><td>R2C3</td></tr><tr>...R3...</tr></table>

R1C1 R1C2 R1C3R2C1 Thisisalongvalue R2C3R3C1 R3C2 R3C3

MaintainEMPMaintainEMP

Employee ADAMS Job CLERK

Mgr BLAKE

HireDate 12-JAN-83

Salary 1100 Commision 1

Dept RESEARCH

Notes

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

p5

MaintainEMPMaintainEMP

Employee ADAMS Job CLERK

Mgr BLAKE

Hiredate 12-JAN-83

Sal 1100 Commision 1

Dept RESEARCH

Address1

Address2

City

State

Zip

Notes

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

MaintainEMPMaintainEMP

Employee ADAMS

Job CLERK

HireDate 12-JAN-83 Manager BLAKE

Salary 1100 Commision 1

Dept RESEARCH

AddressAddress

Address1

Address2

City State Zip

AdditionalInfoAdditionalInfo

Notes

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

p12

In4.2justuse"ItemDisplayPosition"

ItemsBeforeItemsBefore

Search Display 15 GoGo ResetReset

DEPTNODEPTNO DNAMEDNAME LOCLOC

10 ACCOUNTING NEWYORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

1-4

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

ItemsAfterItemsAfter

DEPTNODEPTNO DNAMEDNAME LOCLOC

10 ACCOUNTING NEWYORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

1-4

Search Display 15 GoGo ResetReset

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

In<4.1(or4.2.x)useSubRegions

ContainerRegionItemSubRegionReportSubRegionItemSubRegion

ItemsBefore&AfterItemsBefore&After

Search Display 15 GoGo ResetReset

DEPTNODEPTNO DNAMEDNAME LOCLOC

10 ACCOUNTING NEWYORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

1-4

After01

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

p17

Templatepositions

Recommendation:Useselectedpositionsonlyandbeconsistentinyourapplication

Inotherwords,don'toverdoit.

templatepositionhelpyouwithconsistency

<spanclass="uButtonContainer">#CLOSE##PREVIOUS##NEXT##DELETE##EDIT##CHANGE##CREATE##CREATE2##EXPAND##COPY##HELP#</span>

Youcanusethesamepositionformanybuttons

UsetheSequencetodecidethefinalorder

Frustratingbecausesequenceisnotasintuitive

Button3Button3Button4Button4

ButtonsButtons

Button1Button1 Button2Button2Standardbuttonplacement.

Buttonsw/floatButtonsw/float

Button3isdefinedfirstwithseq10Button4followswithseq40

<style>#BUTTON_3,#BUTTON_4{float:right;}</style>

Demo apex_public_user Logout

SetScreenReaderModeOn release1.0

p25

floatcanaffecttheirparentelement(container)

Whentheparentelementcontainsonlyfloatedelements,it'sheightwillcollapsetonothing.

.clearfix:after{content:".";visibility:hidden;display:block;height:0;clear:both;}

<divclass="uRegionContentclearfix"><divstyle="float:right;">awesomecontent!</div><div>

<divclass="mycontainerclearfix"><divclass="square">Box1</div><divclass="square">Box2</div></div>

.mycontainer{width:600px;border:1pxsolidred;}.square{width:150px;height:150px;color:white;background-color:#0bebf6;border:7pxdottedwhite;padding:10px;margin-right:20px;margin-top:5px;display:inline-block;float:right;}

Box1Box2

<divclass="mycontainer"><divclass="square">Box1</div><divclass="square">Box2</div></div>

.mycontainer{width:600px;border:1pxsolidred;}.square{width:150px;height:150px;color:white;background-color:#0bebf6;border:7pxdottedwhite;padding:10px;margin-right:20px;margin-top:5px;display:inline-block;float:right;}

Box1Box2

ButtonandFieldalignmentishard

YouneedextraCSStoalignbuttonstotheright

@mediaonlyscreenand(min-width:768px){.my-formdiv.fieldContainer{float:left;clear:left;}.my-form.uButton{float:left;margin-left:8px;}}

ExamplefromShakeebhttp://apex.oracle.com/pls/apex/f?p=13766:1:0:

https://forums.oracle.com/message/10914920#10914920

simplyusethenameofthetag

body{overflow:auto;}

label{font-weight:bold;}

useadot(.)andtheclassname

.alert{color:red;}

<pclass="warning">Valuerequiredfornamefield.</p><pclass="alert">Valuerequiredfornamefield.</p>

Valuerequiredfornamefield.Valuerequiredfornamefield.

useahash(#)andtheID

#P5_NOTES{outline:redsolid2px;}

#reportRegion{padding:5px;}

<textareaname="p_t09"rows="5"cols="50"maxlength="4000"id="P5_NOTES"class="textarea"></textarea>

<divid="reportRegion"class="stdReport"></div>

http://s.rimbl.as/PqUy

inlinestyle

ID

class

elements

mostspecific

leastspecific

!important

#logo{display:none!important;}

don'toverdoit

addingCSStoyourapplication1. elementinline2. pageinline3. file

filesystemAPEXhosted

<sectionclass="uRegion"style="width:500px;">

#BODY#

</section>

<pstyle="padding-top:5px;color:red;font-style:italic;">

loremipsum

</p>

<styletype="text/css">

</style>

type="text/css"mostlyoptionalinmodernbrowsers

<linkrel="stylesheet"href="/custom/c.css"type="text/css"/>

directorywasmanuallymappedtowebserverc.csswasmanuallyaddedtotheoperatingsystem

<linkrel="stylesheet"href="#APP_IMAGES#c.css"type="text/css"/>

<linkrel="stylesheet"href="#WORKSPACE_IMAGES#c.css"type="text/css"/>

#APP_IMAGES#and#WORKSPACE_IMAGES#arebuiltinsubstitutionstrings

c.csswasuploadedtoAPEXviaSharedComponents-Files

CascadingStylesheetsImagesStaticFiles

Expandedtousewwv_flow_file_mgr.get_file

#WORKSPACE_IMAGES#c.css

wwv_flow_file_mgr.get_file?p_security_group_id=2616712683471253&p_fname=c.css

boxmodelfrequentlyusedcommands

width+padding-left+padding-right

+border-left+border-right

height

+padding-top+padding-bottom+border-top+border-bottom

<divclass="mycontainer"><divclass="box">Box1</div><divclass="box">Box2</div></div>

.mycontainer{width:600px;border:1pxsolidred;}.box{width:200px;height:150px;color:white;background-color:#0bebf6;border:7pxdottedwhite;padding:10px;margin-right:20px;margin-top:5px;display:inline-block;}

Box1 Box2

box-sizing:border-box;

padding:5px5px5px5px;

→top

left right

bottom

padding:5px;

5pxallaroundexactlythesameas

padding:5px5px5px5px;

padding:5px7px;

5pxtopandbottom7pxleftandright

padding-top:5px;padding-right:5px;padding-bottom:5px;padding-left:5px;

padding:05px00;padding-right:5px;

Youarenowfreetoroamaroundthepage

staticabsoluterelativefixed

Thisisthedefault

thinkoffset

youneedapositionabsoluteorrelativeforz-indextotakeeffect

visible(default)hiddenscrollauto

anycontentthatextendstheheightofaboxwillbedisplayed

However,thecontentthatextendsdoesNOTaffectthedocumentflow.Ithasnoheight.

Anycontentthatextendspasttheheightofaboxwillsimplybeinvisible

contentthatoverflowstheboxwillbehidden, wewillgetscrollbarstogettotheoverflowcontent.

Chromehandlesthescrollbarsdifferently

overflow:scrolloverflow:scroll

Loremipsumdolorsitamet,consecteturadipiscingelit.Aeneanullamcorpervulputatenibh,velconguenibh.Doneclobortisnibhnonnuncblanditelementum.Suspendisseeleifendtempustempus.Aliquamidvelitaarcuadipiscingporttitor.Vivamusposuereturpisidfeugiatmattis.Classaptenttacitisociosquadlitoratorquentperconubianostra,perinceptoshimenaeos.Sedsedurnaegetquamvariustempus.Inidurnaeros.Vestibulumluctusegetnuncvitaepharetra.Vivamuscommodournasedscelerisquedapibus.Utvenenatistellusvestibulummattisvenenatis.Donechendreriteuanteidluctus.

Overflow apex_public_user Logout

release1.0

likeoverflow:scrollhoweveritsolvestheproblemofalwaysvisiblescrollbars.

thecellspushaswideasthecontentis

td.data[headers="MESSAGE"],td.dataAlt[headers="MESSAGE"]{max-width:180px;white-space:pre-line;word-wrap:break-word;}

dataanddataAlt:alternatingrowswhite-space:pre-line;trimspacebeforeline

word-wrap:break-word;

UnfortunatelypartialIEsupportforbreak-word(requirescompatibilitymode)

MultipledevicesMultiplescreenresolutionsYoucangowiththe" "Handfulofitemsperpage...

(version8orbelow)

a.k.a.Youhave100+itemsperpage

dataintensive

slides rimblas.com/slides/kscope13sampleapp:http://s.rimbl.as/PrpV

appdownload:http://s.rimbl.as/PqnDreveal.jshttps://github.com/hakimel/reveal.js

http://css-tricks.com/http://caniuse.com/http://lmgtfy.com/

JorgeRimblas@rimblas

enkitec.com